asp.net 身份验证机制实例代码

所属分类: 网络编程 / ASP.NET 阅读数: 749
收藏 0 赞 0 分享
ASP.NET提供了3种认证方式:windows身份验证、Forms验证和Passport验证。
windows身份验证: IIS根据应用程序的设置执行身份验证。要使用这种验证方式,在IIS中必须禁用匿名访问。
Forms验证:用Cookie来保存用户凭证,并将 未经身份验证的用户重定向到自定义的登录页。
Passport验证:通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录和核心配置文件服务。

关于这三种验证方式的配置,推荐一篇文章:https://www.jb51.net/article/30510.htm

我这里详解Forms验证方式,在ASP.NET项目中的实际应用与深度理解。

对于ASP.NET验证机制在项目开发中运用,会使项目非常方便快捷的实现页面的访问权限问题,而且省去了一些没必要的安全问题。
对于ASP.NET提供的验证机制,要深度的理解后才能灵活的运用。对于整个项目的访问权限,有时候我们需要对部分页面的访问权限进行限制,又不影响其他公共页面的访问。举个实际项目的例子。
案例:有一个ASP.NET的项目,对整个项目访问限制,不允许匿名用户访问,登录页面除外。
  问题是,登录页面(假设是:Manager目录下的Login.aspx文件)中应用的Script的的一个文件(假设这个文件是:Script/jquery-1.7.1.min.js)

1.web.config配置文件
复制代码 代码如下:

<!--配置Forms身份认证 不允许匿名用户访问,否则跳转到/Manager/login.aspx 页面 -->
<authentication mode="Forms">
<forms name="myTeacher" loginUrl="~/Manager/login.aspx" protection="All" path="/" timeout="60"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

现在我们可以理解为:当用户打开程序时,会自动转到Manager/login.aspx页面,但是这个页面引用的jquery-1.7.1.min.js文件是不可用的。因为,限制了所有的匿名用户只能访问Login.aspx页面,只有当注册票据之后其它的页面或文件才能正常访问。所以当匿名用户需要有权限访问jquery-1.7.1.min.js文件,就需要设置某个文件或者文件的访问权限为所有用户。
复制代码 代码如下:

<!--允许所有用户访问Script文件夹-->
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

path可以只想某个具体的文件,比如"Script/Script/jquery-1.7.1.min.js",这里设置“Script”文件夹表示,允许匿名用户访问“Script”文件夹下面的所以文件
复制代码 代码如下:

<!--
定义 ASP.NET身份验证机制
-->
<!--允许所有用户访问Script文件夹-->
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>


<system.web>
<customErrors mode="Off" defaultRedirect="../error.aspx"/>

<!--配置Forms身份认证 不允许匿名用户访问,否则跳转到/Manager/login.aspx 页面 -->
<authentication mode="Forms">
<forms name="myTeacher" loginUrl="~/Manager/login.aspx" protection="All" path="/" timeout="60"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

2.登录注册票据


  当登录页面登录提交并登录成功后,注册票据,当注册票据之后,相当于当前用户的身份已经不是匿名用户,没有了访问权限的限制。FormsAuthentication的命名空间是:using System.Web.Security;

FormsAuthentication.RedirectFromLoginPage(UserID, false); //页面注册 关键 UsersID表示登录ID
3.撕毁票据(退出系统)

FormsAuthentication.SignOut(); //撕毁票据 退出登录
更多精彩内容其他人还在看

ASP.NET 水晶报表打印功能实现代码

ASP.NET下的水晶报表打印,据我所知有以下几种办法可以打印
收藏 0 赞 0 分享

ASP.Net 图片存入数据库的实现代码

在很多时候,我们有这样的需求:把图片存入到数据库当中。在一些应用程序中,我们可能有一些敏感的资料,由于存储在文件系统(file system)中的东西,将很容易被某些用户盗取,所以这些数据不能存放在文件系统中。
收藏 0 赞 0 分享

让Silverlight 2.0动画动起来Making Silverlight 2.0 animation Start(不能运动原因)

Microsoft Expression Blend 2 制作动画个人感觉倒像3DMAX 可以自动捕捉关键帧
收藏 0 赞 0 分享

asp.net Reporting Service在Web Application中的应用

由于我们这个项目中使用微软的报表服务(Reporting Services)作为报表输出工具,本人也对它进行一点点研究,虽没有入木三分,但这点知识至少可以在大部分Reporting Service的场景中应用。
收藏 0 赞 0 分享

C# 文件上传 默认最大为4M的解决方法

.net中默只能上传小于4m的文件,大于4M将无法显示页面.那么如何设置来使imputfile能上传更大的文件呢
收藏 0 赞 0 分享

asp.net 购物车实现详细代码

asp.net 购物车实现详细代码
收藏 0 赞 0 分享

asp.net repeater实现批量删除时注册多选框id到客户端

repeater批量删除时注册多选框id到客户端的实现代码
收藏 0 赞 0 分享

asp.net aspnetpager分页统计时与实际不符的解决办法

最近分页方面根据实际需要修改了一些函数
收藏 0 赞 0 分享

iis 服务器应用程序不可用的解决方法

访问页面时提示 服务器应用程序不可用,大家可以按照下面的方法重新注册下,应该能好点
收藏 0 赞 0 分享

asp.net button 绑定多个参数

asp.net button 绑定多个参数的代码
收藏 0 赞 0 分享
查看更多