通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>NET专区>>正文 新版上线![旧版]
注:打开慢时请稍等

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

http://www.iyit.net  日期:2006-8-28 14:52:16  来源:  点击:
参加讨论

基于窗体的身份验证是 ASP.NET 身份验证服务,它使应用程序能够提供它们自己的登录 UI 和进行它们自己的凭据验证。ASP.NET 验证用户的身份,将未授权的用户重定向到登录页并执行所有必要的 Cookie 管理。这种身份验证是许多 Web 站点使用的流行方法。

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

<configuration> <system.web> <authentication mode="Forms"/> <authorization> <deny users="?" /> </authorization> </system.web> </configuration>

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

<authentication mode="Forms"> <forms name=".ASPXCOOKIEDEMO" loginUrl="login.aspx" protection="all" timeout="30" path="/"> <!-- protection="[All|None|Encryption|Validation]" --> </forms> </authentication>
属性 说明
loginUrl 未授权的用户被重定向到的登录 URL。它可以在同一台计算机上或在远程计算机上。如果它在远程计算机上,两台计算机需要对 decryptionkey 属性使用相同的值。
name 用于身份验证目的的 HTTP Cookie 的名称。注意:如果不止一个应用程序要在一台计算机上使用基于窗体的身份验证服务,则每个应用程序应该配置唯一的 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" 作为凭据。)

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

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

这将用户重定向回当初请求的 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> <credentials passwordFormat="SHA1" > <user name="Mary" password="GASDFSA9823598ASDBAD"/> <user name="John" password="ZASDFADSFASD23483142"/> </credentials> </authentication>

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

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

编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:ASP.NET 基于 Windows 的身份验证
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
ASP.NET 基于窗体的身份验证
ASP.NET 基于 Windows 的身份验证
ASP.NET 身份验证和授权
ASP.NET 安全性概述
处理错误
ASP.NET 基于窗体的身份验证
ASP.NET 基于 Windows 的身份验证
ASP.NET 身份验证和授权
ASP.NET 安全性概述
处理错误
ASP.NET 使用进程模型
部署 ASP.NET 应用程序
ASP.NET 处理错误
ASP.NET 使用进程模型
部署 ASP.NET 应用程序
缓存服务 页数据缓存
缓存服务 页片段缓存
HTTP 处理程序和工厂
使用 Global.asax 文件
HTML 文本模式匹配
WIN XP蓝屏代码大全
QQ密码被盗怎么办!我教你找回密码
WinRAR将推出免费正版序列号!
备份软件GHOST使用教程
轻易破解Winrar,Winzip密码
让WinRAR汗颜的压缩软件UHARC
Win XP操作系统优化精髓
XP中重新安装或修复IE6的三种方法
Ghost批处理命令用法详解
挖掘隐藏在Windows XP中的实用工具(续
在ASP.net中保存/取出图片入/从SQL数据
一个.net 压缩位图至JPEG的代码
ASP.NET2.0数据库入门之常见错误
在ASP.NET中防止注入攻击
用ASP.NET开发Web服务的五则技巧
国内首次发现带有感染文件特征盗号病毒
从键盘磨损看电脑主人
如何控制我的电脑只允许登录我自己的Q
QQ密码被盗怎么办!我教你找回密码
使用身份验证来禁止内部用户上网 
Win Powershell遭遇病毒 最好升级软件
SiteAdvisor 助你远离恶意网站
提升流量 站长应该做的五件事
XP中重新安装或修复IE6的三种方法
XP下Asp.net访问被拒绝
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights ? 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息