`
huanghuaibin
  • 浏览: 66195 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

ASP.NET 基于FORMS验证的目录角色权限

阅读更多

一个系统中经常有多种身份的用户,往往要根据其身份来控制目录的访问权限。asp.net提供了forms验证,能够轻易的在配置文件中设置用户对目录的访问权限.

但是我在使用过程中,发现针对角色的控制并不是那么容易,通过在网上查找资料,终于解决这个问题。下面将主要的注意事项列出来。
1、配置文件中,角色的allow项要放在deny项的前面,users要配置为*,而不是?

<location path="Doctors"> 
<system.web> 
<authorization> 
<allow roles="doctors"/> //这个在前 
<deny users="*"/> 
</authorization> 
</system.web> 
</location> 

 2、将角色写入票据

string role="doctors"; 
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(30), false, role, "/");//建立身份验证票对象 
string HashTicket = FormsAuthentication.Encrypt(Ticket);//加密序列化验证票为字符串 
HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket); 
//生成Cookie 
Response.Cookies.Add(UserCookie);//输出Cookie 
Response.Redirect("");//重定向到用户申请的初始页面 

 3、身份票据并没有直接提供对role的直接支持,需要在Application_AuthenticateRequest中对role进行解析

string[] roles = authTicket.UserData.Split(new char[] { '|' }); 
FormsIdentity id = new FormsIdentity(authTicket); 
System.Security.Principal.GenericPrincipal principal = new System.Security.Principal.GenericPrincipal(id, roles); 
Context.User = principal; 

  

大致弄清这三点,就可以了。

 

里面有包含例子, 可以下载附件

分享到:
评论

相关推荐

    asp.net 基于forms验证的目录角色权限的实现

    一个系统中经常有多种身份的用户,往往要根据其身份来控制目录的访问权限。asp.net提供了forms验证,能够轻易的在配置文件中设置用户对目录的访问权限.

    asp.net Forms身份验证和基于角色的权限访问

    Forms身份验证用来判断是否合法用户,当用户合法后,再通过用户的角色决定能访问的页面。

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

    但是,我们在实际的应用中所使用的大都是基于角色(Roles)的认证方式,NeedDinner中却未给出,本文给出具体实现(基于ASP.NET Forms验证)过程: step 1在完成UserName和Password认证后,向客户端写

    asp.net知识库

    Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...

    ASP.net入门教程

    您可以使用由 IIS 提供的 Windows 身份验证对用户进行身份验证,也可以通过您自己的用户数据库使用 ASP.NET Forms 身份验证和 ASP.NET 成员资格来管理身份验证。此外,可以使用 Windows 组或您自己的自定义角色...

    表单身份验证和用户管理—ASP.net通用权限框架

    它基于员工管理系统DEMO的解决方案。...用Forms进行身份验证 列出所有用户。 创建用户。 编辑用户。 删除用户。 在创建用户时为用户提供角色 稍后改变角色 根据用户角色显示不同的导航菜单(在布局视图中使用部分视图)

    计算机专业毕设精选-asp.net动态口令认证的网上选课系统的设计与实现(源代码+论文).rar

    系统采用ASP.NET Web Forms或ASP.NET Core作为开发框架,利用C#编程语言进行后端开发。数据库方面,支持SQL Server、MySQL等多种关系型数据库。前端则采用了HTML、CSS和JavaScript等现代Web技术,实现了响应式布局和...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    4.6.6 在asp.net中引用名称空间 241 4.7 创建自己的名称空间 241 4.8 my关键字 244 4.8.1 my.application名称空间 244 4.8.2 my.computer名称空间 248 4.8.3 my.forms名称空间 251 4.8.4 my.resources...

    asp.netMVC文章发布系统

    主要功能: 1、文章管理:发布、修改、删除文章,还能对文章进行置顶、推荐、审核等操作...5、本站采用forms身份和角色验证,实现管理员和普通用户两类不同的权限。 6、采用FCk编辑器,数据库操作用SqlHelper封装等等。

Global site tag (gtag.js) - Google Analytics