Beispiel #1
0
        /// <summary>
        /// 授予资源所有者凭据
        /// 当客户端请求为 grant_type=password 时触发
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        private System.Threading.Tasks.Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext arg)
        {
            //这里需要验证用户登录信息以及客户端信息
            DSCMA         user   = null;
            YFPLUS_Client client = null;

            using (DSCSYSEntities context = new DSCSYSEntities())
            {
                user   = new UserService().GetUser(arg.UserName, arg.Password);
                client = context.YFPLUS_Client.AsNoTracking().FirstOrDefault(s => s.ClientIdentify == arg.ClientId);
            }
            if (user != null)
            {
                List <Claim> claims = new List <Claim>();
                claims.Add(new Claim("ClientID", client.ID + ""));
                claims.AddRange(arg.Scope.Select(x => new Claim("urn:oauth:scope", x)));
                claims.Add(new Claim("UserID", user.MA001 + ""));

                var identity = new ClaimsIdentity(
                    new GenericIdentity(user.MA001, OAuthDefaults.AuthenticationType), claims);
                arg.Validated(identity);
            }



            return(Task.FromResult(0));
        }
Beispiel #2
0
 /// <summary>
 /// 专给OAUTH用的,不想引用注入框架了
 /// </summary>
 /// <param name="username"></param>
 /// <param name="password"></param>
 /// <returns></returns>
 public DSCMA GetUser(string username, string password)
 {
     using (dbContext = new DSCSYSEntities())
     {
         string pwd = Encode(EnUser(username.ToCharArray()),
                             password.ToCharArray());
         DSCMA dscma = dbContext.DSCMA.Where(o => o.MA001.Equals(username) &&
                                             o.MA003.Equals(pwd))
                       .FirstOrDefault();
         return(dscma);
     }
 }
Beispiel #3
0
        public bool Login(string username, string password)
        {
            string pwd = Encode(EnUser(username.ToCharArray()),
                                password.ToCharArray());
            DSCMA dscma = dbContext.DSCMA.Where(o => o.MA001.Equals(username))
                          .FirstOrDefault();

            if (dscma == null)
            {
                return(false);
            }
            if (!dscma.MA003.Equals(pwd))
            {
                return(false);
            }
            return(true);
        }