asp.netmvc:窗体身份验证及角色权限管理示例

asp.netmvc:窗体身份验证及角色权限管理示例

ID:15791493

大小:72.86 KB

页数:9页

时间:2018-08-05

asp.netmvc:窗体身份验证及角色权限管理示例_第1页
asp.netmvc:窗体身份验证及角色权限管理示例_第2页
asp.netmvc:窗体身份验证及角色权限管理示例_第3页
asp.netmvc:窗体身份验证及角色权限管理示例_第4页
asp.netmvc:窗体身份验证及角色权限管理示例_第5页
资源描述:

《asp.netmvc:窗体身份验证及角色权限管理示例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ASP.NETMVC:窗体身份验证及角色权限管理示例前言  本来使用FormsAuthentication进行用户验证的方式是最常见的,但系统地阐明其方法的文章并不多见,网上更多的文章都是介绍其中某一部分的使用方法或实现原理,而更多的朋友则发文询问如何从头到尾完整第实现用户的注册、登录。因此,AndersLiu在这一系列文章中计划通过一个实际的例子,介绍如何基于FormsAuthentication实现:l用户注册(包括密码的加密存储)l用户登录(包括密码的验证、设置安全Cookie)l用户实体替换(使用自己的类型作为HttpContext.User的类型

2、)  有关FormsAuthentication的原理等内容不属于本文的讨论范畴,大家可以通过在Google等搜索引擎中输入“FormsAuthentication”、“Forms身份验证”、“窗体身份验证”等关键词来查看更多资源。本文仅从实用的角度介绍如何使用这一技术。不使用Membership  本文介绍的实现方式不依赖ASP.NET2.0提供的Membership功能。这主要是因为,如果使用Membership,就必须用aspnet_regsql.exe实用工具配置数据库,否则就得自己写自定义的MembershipProvider。  如果用aspn

3、et_regsql.exe配置数据库,就会导致数据库中出现很多我们实际并不需要的表或字段。此外更重要的是,默认的SqlMembershipProvider给很多数据表添加了ApplicationID列,其初衷可能是希望可以将多个应用程序的用户全部放在一个库里,但又能彼此隔离。但实际情况是,每个应用程序都在其自身的数据库中保存用户数据。因此,引入这个ApplicationID无端地在每次查找用户时增加了额外的条件。  另一方面,如果考虑自己实现一个MembershipProvider,因为工作量巨大,有点得不偿失。  但是,如果不使用Membership,也

4、就无法享受ASP.NET2.0中新增的Login等控件的便利了。与FormsAuthentication相关的配置  在web.config文件中,/配置节用于对验证进行配置。为节点提供mode="Forms"属性可以启用FormsAuthentication。一个典型的配置节如下所示:

5、tUrl="default.aspx"protection="All"timeout="30"path="/"requireSSL="false"slidingExpiration="false"enableCrossAppRedirects="false"cookieless="UseDeviceProfile"domain=""/>  以上代码使用的均是默认设置,换言之,如果你的哪项配置属性与上述代码一致,则可以省略该属性例如。下面依次介绍一下各种属性:lname——Co

6、okie的名字。FormsAuthentication可能会在验证后将用户凭证放在Cookie中,name属性决定了该Cookie的名字。通过FormsAuthentication.FormsCookieName属性可以得到该配置值(稍后介绍FromsAuthentication类)。lloginUrl——登录页的URL。通过FormsAuthentication.LoginUrl属性可以得到该配置值。当调用FormsAuthentication.RedirectToLoginPage()方法时,客户端请求将被重定向到该属性所指定的页面。loginUrl的

7、默认值为“login.aspx”,这表明即便不提供该属性值,ASP.NET也会尝试到站点根目录下寻找名为login.aspx的页面。ldefaultUrl——默认页的URL。通过FormsAuthentication.DefaultUrl属性得到该配置值。lprotection——Cookie的保护模式,可取值包括All(同时进行加密和数据验证)、Encryption(仅加密)、Validation(仅进行数据验证)和None。为了安全,该属性通常从不设置为None。ltimeout——Cookie的过期时间。lpath——Cookie的路径。可以通过Fo

8、rmsAuthentication.FormsCookiePath

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。