Пример #1
0
        /// <summary>
        /// 获取token,加载权限到缓存,生成response结果
        /// </summary>
        private async Task <LoginResult> GetLoginResult(BaseIdentityUser user)
        {
            // 根据用户的角色获取用户页面侧的权限内容
            List <string> identities = new List <string> {
            }, routes = new List <string> {
            };

            // 用户的角色
            var userRoles = await _userService.GetUserRolesAsync(user);

            foreach (var role in userRoles)
            {
                var identificationStr = await _permissionCacheService.GetRoleIdentificationAsync(role);

                identities.AddRange(identificationStr.Split(CommonConstants.StringConnectChar, StringSplitOptions.RemoveEmptyEntries));

                var routeStr = await _permissionCacheService.GetRoleRoutesAsync(role);

                routes.AddRange(routeStr.Split(CommonConstants.StringConnectChar, StringSplitOptions.RemoveEmptyEntries));
            }

            // 生成JwtToken
            var token = _jwtFactory.GenerateJwtToken(new List <(string, string)> {
                (CustomClaimTypes.UserName, user.UserName),
                (CustomClaimTypes.Role, string.Join(',', userRoles)),
            });
Пример #2
0
        /// <summary>
        /// 获取token,加载权限到缓存,生成response结果
        /// </summary>
        private async Task <LoginResult> GetLoginResult(BaseIdentityUser user)
        {
            // 用户的角色
            var userRoles = await _userService.GetUserRolesAsync(user);

            // 根据用户的角色获取用户页面侧的权限内容
            var identities = await _permissionCacheService.GetRoleIdentificationAsync(userRoles);

            var routes = await _permissionCacheService.GetRoleRoutesAsync(userRoles);

            // 生成JwtToken
            var token = _jwtFactory.GenerateJwtToken(new List <(string, string)> {
                (CustomClaimTypes.UserName, user.UserName),
                (CustomClaimTypes.Role, string.Join(',', userRoles)),
            });
Пример #3
0
        public void Insert(BaseIdentityUser user, UserLoginInfo login)
        {
            var tblLogin = new tblWebsiteUserLogin()
            {
                UserId        = user.Id,
                LoginProvider = login.LoginProvider,
                ProviderKey   = login.ProviderKey
            };

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                db.tblWebsiteUserLogins.Add(tblLogin);

                db.SaveChanges();
            }
        }
Пример #4
0
        public void Delete(BaseIdentityUser user, UserLoginInfo login)
        {
            var tblLogin = new tblWebsiteUserLogin()
            {
                UserId        = user.Id,
                LoginProvider = login.LoginProvider,
                ProviderKey   = login.ProviderKey
            };

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                var entry = db.Entry(tblLogin);
                if (entry.State == EntityState.Detached)
                {
                    db.tblWebsiteUserLogins.Attach(tblLogin);
                }

                db.tblWebsiteUserLogins.Remove(tblLogin);
                db.SaveChanges();
            }
        }
Пример #5
0
        /// <summary>
        /// 取得指定用户的角色
        /// </summary>
        public async Task <List <string> > GetUserRolesAsync(BaseIdentityUser baseIdentityUser)
        {
            var result = await _userManager.GetRolesAsync(baseIdentityUser);

            return(result.ToList());
        }
 public async Task <IList <string> > GetRolesAsync(BaseIdentityUser user)
 {
     return(await this._userManager.GetRolesAsync(user));
 }
Пример #7
0
        /// <summary>
        /// 查找用户的角色
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public async Task <string> FindUserRoleAsync(BaseIdentityUser user)
        {
            var roles = await _userManager.GetRolesAsync(user);

            return(string.Join(',', roles));
        }