zoukankan      html  css  js  c++  java
  • 自创page类中获取当前用户权限 --by winter

    在三层中,关于如何获取当前用户的权限?是管理员,还是普通用户?

    大致思路: 先通过this.User.Identity.Name 获取当前用户的实体(model),然后根据实体的用户
    角色属性(rolename)来最终获取当前用户的权限。

    参考代码:

     1  /// <summary>
     2         /// 获取当前登录的用户
     3         /// </summary>
     4         public Model.Users CurrentUser
     5         {
     6             get
     7             {
     8                 if (_currentUser == null)
     9                 {
    10                      //通过用户名来获得实体。
    11                     _currentUser = new BLL.Users().GetModel(this.User.Identity.Name);
    12                     //找不到(被删除)或被禁用,退出登录
    13                     if (_currentUser == null || !_currentUser.Enabled)
    14                     {
    15                         FormsAuthentication.SignOut();
    16                         Response.Redirect(FormsAuthentication.DefaultUrl);
    17                         Response.End();
    18                     }
    19                 }
    20                 return _currentUser;
    21             }
    22         }
    23         Model.Users _currentUser;
    24         /// <summary>
    25         /// 获取当前登录的用户的权限
    26         /// </summary>
    27         public Model.AccessRights Rights
    28         {
    29             get
    30             {
    31                 if (_rights == null)
    32                 {
    33                     var rights = new BLL.AccessRights().GetModelList(
    34                         string.Format("AccessRightID=(SELECT top 1 [AccessRightID] FROM 
    35 
    36 [Roles] where [RoleName]='{0}')", CurrentUser.RoleName));
    37                     if (rights.Count > 0)
    38                         _rights = rights[0];
    39                     else
    40                         _rights = DefaultRights;
    41                 }
    42                 return _rights;
    43             }
    44         }
    45         Model.AccessRights _rights;
    View Code

    关于用户登录注销,form身份验证,可参考:http://www.cnblogs.com/fish-
    li/archive/2012/04/15/2450571.html(这里有关于登录的一个很好很高级的例子---实现自定义身份认
    证标识,还有--保护受限制的页面,这个也很重要,很好的文章。)

    1. 如何判断当前请求是一个已登录用户发起的?(即判断是否已经登录?)
    2. 如何获取当前登录用户的登录名?

    在标准的ASP.NET身份认证方式中,上面二个问题的答案是:
    1. 如果Request.IsAuthenticated为true,则表示是一个已登录用户。
    2. 如果是一个已登录用户,访问HttpContext.User.Identity.Name可获取登录名(都是实例属性)。

  • 相关阅读:
    SpringBoot项目中遇到的BUG
    关于Unsupported major.minor version 52.0报错问题解决方案
    spring官网上下载历史版本的spring插件,springsource-tool-suite
    构建微服务:Spring boot 入门篇
    Spring Cloud 入门教程(一): 服务注册
    SpringCloud是什么?
    ubuntu下查看windows的 txt 文件乱码
    Ubuntu 14.04 LTS中怎样安装fcitx中文输入法
    eclipse调用jni
    Ubuntu 12.04 分区方案(仅供参考)
  • 原文地址:https://www.cnblogs.com/visibleisfalse/p/3477211.html
Copyright © 2011-2022 走看看