Esempio n. 1
0
        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
                });
            }
        }
Esempio n. 3
0
        /// <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);
        }