一个系统中经常有多种身份的用户,往往要根据其身份来控制目录的访问权限。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验证 Forms验证是ASP.NET框架提供的用于身份验证的一种机制。它允许开发者创建自定义的登录...
总结起来,这个压缩包文件提供的实例是一个ASP.NET Forms身份验证和角色管理的实战教程。它将指导你如何设置身份验证机制,创建登录页面,验证用户凭据,以及如何利用角色管理来划分用户权限。对于初学者和有经验的...
ASP.NET Web Forms是微软开发的一种用于构建Web应用程序的技术,它为开发者提供了丰富的控件和事件驱动模型,使得创建交互式的动态网页变得更为简单。在"ASP.NET Web Forms高级编程"中,我们将深入探讨这一框架的...
ASP.NET中的Forms验证和角色管理是构建安全Web应用程序的关键组件。Forms验证主要用于确保用户输入的数据符合预期格式,防止恶意攻击,而角色管理则允许我们对用户进行分组,实现不同级别的权限控制。以下是对这两个...
ASP.NET Forms验证是一种广泛使用的身份验证机制,尤其适用于基于Web的应用程序。在ASP.NET中,有三种主要的身份验证模式:Windows、Forms和Passport,但Forms验证因其灵活性和易用性而成为首选。本文将深入探讨...
在ASP.NET中,身份验证(Authentication)是一个核心概念,它用于确定用户的身份,并根据其身份提供相应的访问权限。 **一、ASP.NET身份验证概述** ASP.NET的身份验证机制主要分为三种类型:Windows身份验证、...
Asp.net支持多种身份验证模式,如Windows身份验证、Forms身份验证等,其中Forms身份验证是最常用的,适用于非域环境的Web应用。 在Asp.net中,用户角色是授权的一种方式,它允许我们将多个用户分组,然后为这些组...
但是我在使用过程中,发现针对角色的控制并不是那么容易,通过在网上查找资料,终于解决这个问题。下面将主要的注意事项列出来。1、配置文件中,角色的allow项要放在deny项的前面,users要配置为*,而不是? 代码 ...
ASP.NET MVC框架内建了身份验证和授权机制,如Forms Authentication和Role-based Authorization,这些可以通过配置或代码进行定制,以满足特定的权限管理需求。 3. **角色管理**:角色是用户权限分配的基本单位。在...
ASP.NET的Forms认证是.NET Framework中用于Web应用程序的身份验证机制之一,它主要用于处理用户登录和权限控制。在本项目"asp.net的forms认证演示项目!"中,开发者www.it560.com提供了一个实际操作的案例,帮助我们...
在这个"asp.net实用登录验证源码"中,我们可以深入学习ASP.NET中关于用户身份验证和权限管理的关键概念。 首先,`Global.asax`文件是ASP.NET应用程序的全局应用事件脚本,它包含了应用程序生命周期和会话生命周期的...
ASP.NET提供了多种身份验证方法,如Forms Authentication(基于表单的身份验证)、Windows Authentication(Windows集成身份验证)等。在这个系统中,可能采用了Forms Authentication,通过用户名和密码来验证用户。...
本项目“VS2012+ASP.NET4.5开发的基于角色的权限管理系统”利用了微软的开发工具Visual Studio 2012和ASP.NET框架4.5的强大功能,构建了一个高效、安全且易于管理的权限控制平台。 在ASP.NET 4.5中,开发人员可以...
ASP.NET支持多种身份验证模式,如Forms Authentication(表单认证)和Windows Authentication(Windows身份验证)。在这里,我们主要关注Forms Authentication,它是Web应用中最常用的身份验证方式,适用于非...
ASP.NET MVC 框架提供了一种强大的方式来构建可扩展和模块化的Web应用程序,而窗体身份验证和角色权限管理则是确保应用安全的核心组件。本文将深入探讨如何在ASP.NET MVC中实现窗体身份验证和角色权限管理,以及相关...
在ASP.NET中,这通常通过Forms身份验证实现,用户通过登录界面提供凭证,系统验证后授予访问权限。在本系统中,用户信息可能存储在数据库中,每次请求时,系统会检查用户是否已认证,并基于用户的标识来确定其权限。...
ASP.NET 提供了身份验证和授权机制,例如Windows身份验证、Forms身份验证,以及角色管理,用于限制不同用户对系统的访问权限。 7. **异常处理**:在开发过程中,良好的错误处理和异常处理是必不可少的。ASP.NET ...