可恶的0xcccccccc引起的问题

 

 

在文章《WlxLoggedOutSAS的实现方法》中提到保留msgina.dll里的WlxLoggedOutSAS,但用自己的LSA验证的方法。

这里遇到新的情况。

一、情况描述

1、设计为:

第一次登录时就采用自定义的LSA验证,如果用户本地输入,那么WlxLoggedOutSAS结束时,从返回的

参数中获得用户名与密码,然后交由自己的LSA验证。

目的:

 

 

2、

 

RDP中注销后,在计算机的锁屏时输入用户名与密码进行登录。此时是会话2的WlxLoggedOutSAS结束。

结束时通知会话0进行LSA登录(因为此时会话0是处于Logoff状态),那么登录的用户名与密码哪里来呢?

当会话2的WlxLoggedOutSAS结束后返回的pszDomain是有值的,但是因为我通知会话0进行LSA验证了,此时

会话0的pszDomain竟然是0xccccccc。

 if ( 0xcccccccc == (unsigned int)g_CXRedGinaApp.m_sWlxLogOutContext.s_pMprNotifyInfo->pszDomain || NULL == g_CXRedGinaApp.m_sWlxLogOutContext.s_pMprNotifyInfo->pszDomain)
			{
				wcscpy(wstrUserName, CShareData::m_lpShareData->DataLogonInfo.u.up.username);
				wcscpy(wstrPassWord, CShareData::m_lpShareData->DataLogonInfo.u.up.password);
				wcscpy(wstrDomain, CShareData::m_lpShareData->DataLogonInfo.u.up.domain);
			}

解决方法:

在会话2结束时把用户名与密码保存到共享内存中,然后通知完会话0后,会话0再从共享中读出来进行LSA验证。

3、WlxLogoff出现异常

 解决方法:

WlxLogoff函数自己重写,不用msgina.dll中的接口。

4、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值