コード例 #1
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            try
            {
                using (var db = new TESTEntities())
                {
                    if (db != null)
                    {
                        var empl  = db.Employees.ToList();
                        var users = db.Users.ToList();
                        var roles = db.Roles.ToList();

                        if (users != null)
                        {
                            var user = (from u in users
                                        where u.UserName == context.UserName && u.Password == context.Password
                                        select new
                            {
                                u.Name,
                                u.UserName,
                                u.Id,
                                u.RoleId,
                            }).FirstOrDefault();
                            if (user != null)
                            {
                                var usr = new User()
                                {
                                    Id       = user.Id,
                                    UserName = user.UserName,
                                    Name     = user.Name,
                                    RoleId   = user.RoleId,
                                    Role     = GetRole(user.RoleId)
                                };

                                await Task.Run(() => context.Validated(BuildTicket(usr, context.Options)));
                            }
                            else
                            {
                                context.SetError("invalid_grant", "Provided username and password is incorrect");
                                return;
                            }
                        }
                        else
                        {
                            context.SetError("invalid_grant", "Provided username and password is incorrect");
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                context.SetError("invalid_grant", "Provided username and password is incorrect");
                return;
            }
        }
コード例 #2
0
 private Role GetRole(int roleId)
 {
     using (var db = new TESTEntities())
     {
         if (db != null)
         {
             var roles = db.Roles.ToList();
             var role  = (from u in roles where u.RoleId == roleId
                          select new
             {
                 u.RoleType,
                 u.RoleId
             }).FirstOrDefault();
             Role rl = new Role();
             rl.RoleId   = role.RoleId;
             rl.RoleType = role.RoleType;
             return(rl);
         }
         else
         {
             return(null);
         }
     }
 }