public static bool Verify(string userName, string password) { // 默认两种验证方式 var domain = string.Format("{0}", WFCorePublicCodeHelper.GetPublicCode("Domain", "Authentication Method", "Domain,Password")).ToLower(); if (domain.Contains("password")) { var user = UserLoader.GetUserByName(userName); if (user != null) { var uesrHash = HashHelper.GenerateUserHash(userName, password); if (uesrHash == user.Password) { return(true); } } } if (domain.Contains("domain")) { if (IsValidDomainUser(userName, password)) { return(true); } } return(false); }
private void LoadPublicCodeFromDB(List <WF_M_PUBLICCODE> list, string language) { var codeList = WFCorePublicCodeHelper.QueryPublicCodeDefault(); foreach (var c in codeList) { var item = list.FirstOrDefault(a => a.CodeType == c.CodeType && a.CodeName == c.CodeName); if (item != null) { list.Remove(item); } list.Add(new WF_M_PUBLICCODE() { CodeType = c.CodeType, CodeName = c.CodeName.GetRes(language), CodeValue = c.CodeValue }); } }
/// <summary> /// 域验证 /// </summary> /// <param name="user"></param> /// <param name="pwd"></param> /// <returns></returns> public static bool IsValidDomainUser(string user, string pwd) { const int LOGON32_LOGON_INTERACTIVE = 2; //通过网络验证账户合法性 const int LOGON32_PROVIDER_DEFAULT = 0; //使用默认的Windows 2000/NT NTLM验证方 IntPtr tokenHandle = new IntPtr(0); tokenHandle = IntPtr.Zero; string domainName = WFCorePublicCodeHelper.GetPublicCode("Domain", "Domain", string.Empty); string domainAccount = user; //域帐号 如:administrator string domainPassword = pwd; //密码 bool checkok = LogonUser(domainAccount, domainName, domainPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref tokenHandle); return(checkok); }