• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.NET MVC 中实现基于角色的权限控制的处理方法

    [Authorize]
    public ActionResult Index()

    标记的方式,可以实现所标记的ACTION必须是认证用户才能访问;

    通过使用

    [Authorize(Users="username")]

    的方式,可以实现所标记的ACTION必须是某个具体的用户才能访问,以上两种方式使用起来非常方便,在NeedDinner示例程序中已有具休的实现过程,

    但是,我们在实际的应用中所使用的大都是基于角色(Roles)的认证方式,NeedDinner中却未给出,本文给出具体实现(基于ASP.NET Forms验证)过程:

    step 1
    在完成UserName和Password认证后,向客户端写入认证Cookie

    代码

    复制代码 代码如下:

            FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                1,
                userName,
                DateTime.Now,
                DateTime.Now.AddMinutes(20),
                false,
                "admin"//写入用户角色
                );

            string encryptedTicket = FormsAuthentication.Encrypt(authTicket);

            System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
            System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);

    step 2
    在Global.asax.cs文件中加入以下代码,用于在用户登陆网站时读取Cookie

    代码

    复制代码 代码如下:

    protected void Application_AuthenticateRequest(Object sender, EventArgs e)
        {
            HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
            if (authCookie == null || authCookie.Value == "")
            {
                return;
            }
            FormsAuthenticationTicket authTicket = null;
            try
            {
                authTicket = FormsAuthentication.Decrypt(authCookie.Value);
            }
            catch
            {
                return;
            }
            string[] roles = authTicket.UserData.Split(new char[] { ';' });
             if (Context.User != null)
            {
                Context.User = new System.Security.Principal.GenericPrincipal(Context.User.Identity, roles);
            }
        }

    step 3

    这样以来,就可以使用实现以下效果

    复制代码 代码如下:

      [Authorize(Roles="admin")]
        public ActionResult Index(int ? page)

    您可能感兴趣的文章:
    • asp.net membership 密码重设
    • asp.net 权限管理分析
    • asp.net Forms身份验证和基于角色的权限访问
    • 实例说明asp.net中的简单角色权限控制
    • asp.net 基于forms验证的目录角色权限的实现
    • 获取创建Membership的数据库创建脚本
    • 一个基于Asp.Net MVC的权限方案
    • asp.net+sqlserver实现的简单高效的权限设计示例
    • asp.net BasePage类+Session通用用户登录权限控制
    • Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
    • ASP.NET通用权限验证的实现代码思路
    • 初识 ASP.NET Membership 用户管理
    上一篇:将Access数据库中数据导入到SQL Server中的详细方法实例
    下一篇:AspNetPager+GridView实现分页的实例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP.NET MVC 中实现基于角色的权限控制的处理方法 ASP.NET,MVC,中,实现,基于,