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);