在ASP.Net 中使用实现windows登陆的方法.

public bool Login (string UserName, string Password, string Domain) { string text1 = Domain.Trim(); string text2 = UserName.Trim(); text2 = text2.Replace("/", @""); int num1 = text2.IndexOf('\'); if (num1 != -1) { text1 = text2.Substring(0, num1); text2 = text2.Substring(num1 + 1); } else { num1 = text2.IndexOf('@'); if (num1 != -1) { text1 = text2.Substring(num1 + 1); text2 = text2.Substring(0, num1); } } return this.authenticateUser(text2, Password.Trim(), text1); }


private bool **authenticateUser** (string UserName, string Password, string Domain)
{
      bool **flag1** = false;
      try
      {
            int **num1** ;
            IntPtr **ptr1** ;
            if (!WindowsAuth.LogonUser(UserName, Domain, Password, 2, 0, out num1))
            {
                  return flag1;
            }
            ptr1 = new IntPtr(num1);
            WindowsIdentity **identity1** = new WindowsIdentity(ptr1);
            WindowsPrincipal **principal1** = new WindowsPrincipal(identity1);
            HttpContext.Current.User = principal1;
            FormsAuthentication.SetAuthCookie(principal1.Identity.Name, false);
            FormsAuthentication.RedirectFromLoginPage(UserName, false);
            flag1 = true;
      }
      catch (Exception)
      {
      }
      return flag1;
}  

[DllImport("advapi32.dll")]
public static extern bool **LogonUser** (string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, out int phToken);
Published At
Categories with Web编程
Tagged with
comments powered by Disqus