小弟最近在学习有关Gina方面的资料,公司需要,我要做的Gina是仅仅替换登录框,即仅仅对WlxLoggedOutSAS这个函数做自己的处理,其余的函数直接调用MSGINA.dll中的函数.现在遇到的问题是,LogonUser成功后,登录后,桌面还没显示就自动注销,想尽了办法,至今不知道问题出现在哪里?还请做过Gina的专家,前辈,大哥,大姐,给小弟点提示,在这里感激各位了.谢谢.
  登录显示"正在加载个人设置" ..."正在应用个人设置"..." 然后 就"正在注销" ..."正在保存设置"
      (参数7)pMprNotifyInfo.pszUserName    := DupString(LoginStr);
      pMprNotifyInfo.pszDomain      := DupString(DomainStr);
      pMprNotifyInfo.pszPassword    := DupString(PassWordStr);
      pMprNotifyInfo.pszOldPassword := DupString('');
      CopySid(GetLengthSid(pGroups.Groups[i].Sid), (参数四)pLogonSid,   pGroups.Groups[i].Sid);     (参数5) pdwOptions := 0;     //得到系统的值就是零
      (参数8) pProfile   := nil;
     (参数3)pAuthenticationId这个值我是用LogonUser得到thToken后GetTokenInfomation 得到.
请指教.谢谢.

解决方案 »

  1.   

    GINA被抛弃了~现在是基于COM技术的GP
    还要玩GINA的,建议用Hook比替换好多了
      

  2.   

     pProfile       :=   nil; 这个参数你可能赋地有问题,不防对这个结构中的各个值看一下   PWLX_PROFILE_V2_0(pProfile)^.dwType;
       PWLX_PROFILE_V2_0(pProfile)^.pszProfile ;
       PWLX_PROFILE_V2_0(pProfile)^.pszPolicy  ;
       PWLX_PROFILE_V2_0(pProfile)^.pszNetworkDefaultUserProfile := ;
       PWLX_PROFILE_V2_0(pProfile)^.pszServerName  := DupString;
       PWLX_PROFILE_V2_0(pProfile)^.pszEnvironment := DupString;
      

  3.   

    可以分享下你WlxLoggedOutSAS函数的代码吗
      

  4.   

    vista后面的gina用COM技术做了.要做全系统的gina要处理的东西还挺多的