`
huanghuaibin
  • 浏览: 68807 次
  • 性别: 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框架提供的用于身份验证的一种机制。它允许开发者创建自定义的登录...

    asp.net基于forms身份和角色验证实例

    总结起来,这个压缩包文件提供的实例是一个ASP.NET Forms身份验证和角色管理的实战教程。它将指导你如何设置身份验证机制,创建登录页面,验证用户凭据,以及如何利用角色管理来划分用户权限。对于初学者和有经验的...

    asp.net web forms高级编程

    ASP.NET Web Forms是微软开发的一种用于构建Web应用程序的技术,它为开发者提供了丰富的控件和事件驱动模型,使得创建交互式的动态网页变得更为简单。在"ASP.NET Web Forms高级编程"中,我们将深入探讨这一框架的...

    asp.net Forms验证角色管理示例

    ASP.NET中的Forms验证和角色管理是构建安全Web应用程序的关键组件。Forms验证主要用于确保用户输入的数据符合预期格式,防止恶意攻击,而角色管理则允许我们对用户进行分组,实现不同级别的权限控制。以下是对这两个...

    ASP.NET Forms验证

    ASP.NET Forms验证是一种广泛使用的身份验证机制,尤其适用于基于Web的应用程序。在ASP.NET中,有三种主要的身份验证模式:Windows、Forms和Passport,但Forms验证因其灵活性和易用性而成为首选。本文将深入探讨...

    ASP.NET基于身份验证

    在ASP.NET中,身份验证(Authentication)是一个核心概念,它用于确定用户的身份,并根据其身份提供相应的访问权限。 **一、ASP.NET身份验证概述** ASP.NET的身份验证机制主要分为三种类型:Windows身份验证、...

    Asp.net中的用户角色权限设计

    Asp.net支持多种身份验证模式,如Windows身份验证、Forms身份验证等,其中Forms身份验证是最常用的,适用于非域环境的Web应用。 在Asp.net中,用户角色是授权的一种方式,它允许我们将多个用户分组,然后为这些组...

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

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

    ASP.NET+MVC+创建用户权限管理范例程序源码

    ASP.NET MVC框架内建了身份验证和授权机制,如Forms Authentication和Role-based Authorization,这些可以通过配置或代码进行定制,以满足特定的权限管理需求。 3. **角色管理**:角色是用户权限分配的基本单位。在...

    asp.net的forms认证演示项目!

    ASP.NET的Forms认证是.NET Framework中用于Web应用程序的身份验证机制之一,它主要用于处理用户登录和权限控制。在本项目"asp.net的forms认证演示项目!"中,开发者www.it560.com提供了一个实际操作的案例,帮助我们...

    asp.net实用登录验证源码

    在这个"asp.net实用登录验证源码"中,我们可以深入学习ASP.NET中关于用户身份验证和权限管理的关键概念。 首先,`Global.asax`文件是ASP.NET应用程序的全局应用事件脚本,它包含了应用程序生命周期和会话生命周期的...

    ASP.NET源码——asp.net权限管理系统Demo源码.zip

    ASP.NET提供了多种身份验证方法,如Forms Authentication(基于表单的身份验证)、Windows Authentication(Windows集成身份验证)等。在这个系统中,可能采用了Forms Authentication,通过用户名和密码来验证用户。...

    VS2012+ASP.NET4.5开发的基于角色的权限管理系统

    本项目“VS2012+ASP.NET4.5开发的基于角色的权限管理系统”利用了微软的开发工具Visual Studio 2012和ASP.NET框架4.5的强大功能,构建了一个高效、安全且易于管理的权限控制平台。 在ASP.NET 4.5中,开发人员可以...

    asp.net用户验证系统

    ASP.NET支持多种身份验证模式,如Forms Authentication(表单认证)和Windows Authentication(Windows身份验证)。在这里,我们主要关注Forms Authentication,它是Web应用中最常用的身份验证方式,适用于非...

    ASP.NET MVC:窗体身份验证及角色权限管理示例

    ASP.NET MVC 框架提供了一种强大的方式来构建可扩展和模块化的Web应用程序,而窗体身份验证和角色权限管理则是确保应用安全的核心组件。本文将深入探讨如何在ASP.NET MVC中实现窗体身份验证和角色权限管理,以及相关...

    ASP.NET通用权限管理系统

    在ASP.NET中,这通常通过Forms身份验证实现,用户通过登录界面提供凭证,系统验证后授予访问权限。在本系统中,用户信息可能存储在数据库中,每次请求时,系统会检查用户是否已认证,并基于用户的标识来确定其权限。...

    ASP.NET校友录课程设计

    ASP.NET 提供了身份验证和授权机制,例如Windows身份验证、Forms身份验证,以及角色管理,用于限制不同用户对系统的访问权限。 7. **异常处理**:在开发过程中,良好的错误处理和异常处理是必不可少的。ASP.NET ...

Global site tag (gtag.js) - Google Analytics