コード例 #1
0
        private bool ValidateLogOn(string userName, string password, out UserModel loginUser)
        {
            loginUser = null;
            if (string.IsNullOrEmpty(userName))
            {
                ModelState.AddModelError("errorMsg", "用户名为空");
                return(false);
            }
            if (string.IsNullOrEmpty(password))
            {
                ModelState.AddModelError("errorMsg", "密码为空");
                return(false);
            }
            UserModel user = _userService.Get(t => t.UserName == userName);

            if (user == null)
            {
                ModelState.AddModelError("errorMsg", "用户名不存在");
                return(false);
            }
            string pwdhash = MD5Helper.ComputeMD5((userName + password).Trim());

            if (user.Password != pwdhash)
            {
                ModelState.AddModelError("errorMsg", "用户名与密码不匹配");
                return(false);
            }
            loginUser = user;
            return(true);
        }
コード例 #2
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            await Task.Factory.StartNew(() => context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }));

            /*
             * 对用户名、密码进行数据校验
             */

            var    password = MD5Helper.ComputeMD5(context.Password);
            string sql      = "SELECT * FROM T_USER WHERE USERNAME = @P_USERNAME AND PASSWORD= @P_PASSWORD";

            var repo = new RepositoryBase(new SessionBase());
            var user = repo.GetFirstOrDefault <T_User>(sql, new { P_USERNAME = context.UserName, P_PASSWORD = password });

            if (user == null)
            {
                context.SetError("invalid_grant", "用户名或密码无效");
                return;
            }


            var identity = new ClaimsIdentity(context.Options.AuthenticationType);

            identity.AddClaim(new Claim("sub", context.UserName));
            identity.AddClaim(new Claim("role", "user"));
            identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));

            context.Validated(identity);
        }
コード例 #3
0
ファイル: UserService.cs プロジェクト: q5401103q/MyTutorials
        /// <summary>
        /// 根据用户名和密码查询用户信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public T_UserDto LoginByUsername(T_UserSingleModel model)
        {
            var password = MD5Helper.ComputeMD5(model.Password);

            string sql = "SELECT * FROM T_USER WHERE USERNAME = @P_USERNAME AND PASSWORD= @P_PASSWORD";

            var user = DataRepository.GetFirstOrDefault <T_User>(sql, new { P_USERNAME = model.Username, P_PASSWORD = password });

            return(AutoMapperHelper <T_User, T_UserDto> .AutoConvert(user));
        }
コード例 #4
0
        public static string GetIdentity(this Request request)
        {
            int retryCount = request.GetRetryCount();
            var input      = new
            {
                request.Method,
                request.Uri,
                request.Encoding.EncodingName,
                request.Headers,
                request.Referer,
                retryCount,
            };

            return(string.Concat(MD5Helper.ComputeMD5(Encoding.UTF8.GetBytes(JsonHelper.Serialize(input))).Select(t => t.ToString("X2"))));
        }
コード例 #5
0
        public ActionResult Register(string username, string useremail, string passwd, string confirmpasswd)
        {
            if (!ValidateRegistration(username, useremail, passwd, confirmpasswd))
            {
                return(View());
            }
            var user = new UserModel
            {
                UserName = username,
                Email    = useremail,
                Password = MD5Helper.ComputeMD5((username + passwd).Trim()),
                Birthday = DateTime.Now,
                RegDate  = DateTime.Now,
                Gender   = 'F',
            };

            if (_userService.Exists(user))
            {
                ModelState.AddModelError("errorMsg", " 该用户已存在");
                return(View());
            }
            _userService.Add(user);
            RedisHelper.SetUserInfo(user.UserName + ":master", user);
            string claimIdentifier = Util.GetUserClaimIdentifier(username).ToString();

            _logService.Add(new LoginLogModel
            {
                UserName = user.UserName,
                AddTime  = DateTime.Now,
                Flag     = 1,
                ID       = Guid.NewGuid(),
                OpenIdClaimedIdentifier  = claimIdentifier,
                OpenIdFriendlyIdentifier = claimIdentifier
            });
            _formsAuthService.SignIn(user, false);
            return(RedirectToAction("Index", "Home"));
        }