文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网络编程 >> NET编程 >> 文章内容  
 

 
ASP.net基于窗体的身份验证

www.hx99.org 阅读: 时间:2007-07-12 整理:华西黑盟
------------------------------------------------------------------
 基于窗体的身份验证是ASP.NET身份验证服务,它使应用程序能够提供它们自己的登录UI和进行它们自己的凭据验证。ASP.NET 验证用户的身份,将未授权的用户重定向到登录页并执行所有必要的Cookie管理。这种身份验证是许多Web站点使用的流行方法。

应用程序必须被配置成使用基于窗体的身份验证,将<authentication>设置为Forms并且拒绝匿名用户访问。下面的示例说明如何在所需应用程序的 Web.config文件中完成此配置:

<configuration>
<system.web>
<authenticationmode="Forms"/>
<authorization>
<denyusers="?"/>
</authorization>
</system.web>
</configuration>

管理员使用基于窗体的身份验证来配置要使用的Cookie名称、保护类型、用于登录页的URL、Cookie生效的时间长度以及用于已发布 Cookie的路径。下表显示了<Forms>元素(它是下面的示例中显示的<authentication>元素的子元素)的有效属性:

<authenticationmode="Forms">
<formsname=".ASPXCOOKIEDEMO"loginUrl="login.aspx"protection="all"timeout="30"path="/">
<!--protection="[All|None|Encryption|Validation]"-->
</forms>
</authentication>

属性及其说明
loginUrl未授权的用户被重定向到的登录URL。它可以在同一台计算机上或在远程计算机上。如果它在远程计算机上,两台计算机需要对decryptionkey 属性使用相同的值。

name用于身份验证目的的HTTPCookie的名称。注意:如果不止一个应用程序要在一台计算机上使用基于窗体的身份验证服务,则每个应用程序应该配置唯一的 Cookie值。为了避免在URL中导致依赖项,ASP.NET在设置身份验证Cookie时将“/”用作Path值,这使Cookie 被发送回站点上的每个应用程序。

timeout以整数分钟为单位的时间量,超过此时间量,Cookie将过期。默认值是30。超时属性是一个变化值,从收到最后一个请求的时间开始计算,它过期 n分钟。为了避免对性能产生负面影响,也为了避免那些打开了Cookie警告的应用程序产生多个浏览器警告,Cookie在超时时间过半时更新。(这意味着在某些情况下会丢失可能的精度。)

path用于已发出Cookie的路径。默认值为“/”以避免因路径中有不匹配的大小而带来的困难,因为在返回Cookie时,浏览器严格区分大小写。共享服务器环境中的应用程序应该使用此指令维持专用 Cookie。(另一种方法是,它们可以使用API在运行时指定路径以发出Cookie。)

protection用于保护Cookie数据的方法。有效值如下所示:
All:同时使用数据验证和加密来保护Cookie。配置的数据验证算法基于元素。如果三重DES可用并且密钥足够长(48位),则使用三重 DES进行加密。All是默认(和建议)值。
None:用于仅将Cookie用于个性化并且安全要求不高的站点。加密和验证都可以被禁用。尽管以此方式使用Cookie需谨慎,但对于使用 .NET框架实现个性化的任何方法,此设置提供了最佳性能。
Encryption:使用TripleDES或DES加密Cookie,但不对Cookie进行数据验证。这类Cookie容易受到精心选择的纯文本的攻击。
Validation:不加密Cookie的内容,但验证Cookie数据在传输过程中是否未被更改。若要创建Cookie,验证密钥在缓冲区中与 Cookie数据连接,并且计算出MAC并将其追加到输出的Cookie。

配置了应用程序后,需要提供一个登录页。下面的示例显示了一个简单的登录页。示例在运行时要求Default.aspx页。未授权的请求被重定向到登录页 (Login.aspx),此页显示一个简单的窗体,提示用户输入电子邮件地址和密码。(使用Username="jdoe@somewhere.com"和 Password="password"作为凭据。)

验证了凭据后,应用程序调用下列内容:

C#
FormsAuthentication.RedirectFromLoginPage(UserEmail.Value,PersistCookie.Checked);

VB
FormsAuthentication.RedirectFromLoginPage(UserEmail.Value,PersistCookie.Checked)

JScript
FormsAuthentication.RedirectFromLoginPage(UserEmail.Value,PersistCookie.Checked);

 

这将用户重定向回当初请求的URL。不想执行重定向的应用程序可以或者调用FormsAuthentication.GetAuthCookie 来检索Cookie值,或者调用FormsAuthentication.SetAuthCookie将正确加密的Cookie附加到输出的响应中。对于提供嵌入在包含页中的登录 UI的应用程序,或者想要更多地控制用户被重定向到的位置的应用程序而言,这些方法很有用。身份验证Cookie既可以临时又可以永久(“持久”)。临时 Cookie只在当前浏览器会话期间保持。当浏览器关闭时,临时Cookie随即丢失。永久Cookie则被浏览器保存,并在浏览器会话间回发,直到被用户显式删除。

VB基于窗体的/Cookie身份验证

窗体身份验证使用的身份验证Cookie由System.Web.Security.FormsAuthenticationTicket 类的线性版本组成。信息包括用户名(但没有密码)、使用的窗体身份验证版本、发出Cookie的日期以及可选的应用程序特定数据的字段。

通过使用FormsAuthentication.SignOut方法,应用程序代码可以撤消或移除身份验证Cookie。这将移除身份验证 Cookie,不论它是临时的还是永久的。

还可以使用配置为基于窗体的身份验证服务提供有效凭据的列表,如下例所示:

<authentication>
<credentialspasswordFormat="SHA1">
<username="Mary"password="GASDFSA9823598ASDBAD"/>
<username="John"password="ZASDFADSFASD23483142"/>
</credentials>
</authentication>

应用程序然后可以调用FormsAuthentication.Authenticate并提供用户名和密码,ASP.NET将验证凭据。根据 passwordFormat属性的下列值,凭据可以存储在明文中,或者存储为SHA1或MD5:

哈希类型说明
Clear密码存储在明文中
SHA1密码存储为SHA1摘要
MD5密码存储为MD5摘要

   -------------------------------------------------------------------------------------------
  上一篇:ASP.NET常用函数(推荐)
  下一篇:ASP.NET编程中的十大技巧
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
推荐:ASPX一句话木马--终
利用ASP.Net 动态生成HTML
asp.net实现验证码
在asp.net中利用session做
Asp.net 中在客户端触发服
Asp.net 中服务端控件事件
ASP.NET上传图片并生成可
ASP.NET AJAX解决网页打开
实现IE浏览器部分菜单命令
Asp.net一夜速成教程
从sqlserver中读取图片
ASP.NET页面间的传值的几
用动态属性和DataView实现
用PagedDataSource类实现D
关于TreeView控件专题
asp.net上传图片并同时生
ASP.NET中水晶报表的使用
ASP.NET 中 Cookie 的基本
ADO.NET使用经验集
Forms身份验证
ASP.NET四种页面导航方式
ASP.NET中如何防范SQL注入
[分享]ASP.NET学习手记```
ASP.NET编程中的十大技巧
用ASP.NET上传图片并生成
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号