当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

ASP.NET Forms权限验证

  安全性是 ASP.NET Web 应用程序中一个非常重要的方面。它涉及内容非常广泛,不能在一篇文章内说明所有的安全规范,本文讲述如何利用Forms 身份验证构建安全的 ASP.NET 应用程序,它是目前被使用最多最广的验证/授权方式。

  本文以ASP.NET2.0在Forms 身份验证上的实现方法进行说明。相信读者都己经看过许多类似这样的文章,无论是在网上或是某些专业书籍上。最近又出现了非常多的以WCF或者ASP.NET MVC关于安全模型指南,可见构建网站安全总是不过时的话题。

  本文旨在以简单的方法一步一步讲述网站的安全认证框架,以起到抛砖引玉的作用。相信你在看完本文时,一定会有所收获。

  首先,需要配置根目录下的web.config文件: <?xml version="1.0" encoding="utf-8"?>

  <configuration>

  <system.web>

  <authentication mode="Forms">

  <forms name="SunnyWay"

  protection="All"

  timeout="30"

  loginUrl="~/Login.aspx"

  defaultUrl="~/"

  slidingExpiration="true"/>

  </authentication>

  </system.web>

  </configuration>

  < authentication>元素的mode属性指定应用程序的默认身份验证模式(默认值为 Windows)。此属性可以为下列值之一: Windows

  将 Windows 验证指定为默认的身份验证模式。将它与以下任意形式的 Microsoft Internet 信息服务 (IIS) 身份验证结合起来使用:基本、摘要、集成 Windows 身份验证 (NTLM/Kerberos) 或证书。在这种情况下,您的应用程序将身份验证责任委托给基础 IIS。

  Forms

  将 ASP.NET 基于窗体的身份验证指定为默认身份验证模式。

  Passport

  将 Microsoft Passport Network 身份验证指定为默认身份验证模式。

  None

  不指定任何身份验证。您的应用程序仅期待匿名用户,否则它将提供自己的身份验证。

  下面是本示例使用的< forms>元素的属性,更多信息请参阅MSDN: name

  指定要用于身份验证的 HTTP Cookie。如果正在一台服务器上运行多个应用程序并且每个应用程序都需要唯一的 Cookie,则必须在每个应用程序的 Web.config 文件中配置 Cookie 名称。

  默认值为 ".ASPXAUTH"。

  protection

  指定应用程序同时使用数据验证和加密方法来保护 Cookie。该选项使用已配置的数据验证算法,该算法基于 machineKey 元素。如果三重 DES (3DES) 可用并且密钥足够长(48 位或更长),则使用三重 DES 进行加密。默认值(建议值)为 All。其他可选值(Encryption、None、Validation)信息请参阅MSDN

  timeout

  指定 Cookie 过期前逝去的时间(以整数分钟为单位)。如果 SlidingExpiration 属性为 true,则 timeout 属性是滑动值,会在接收到上一个请求之后的指定时间(以分钟为单位)后过期。为防止危及性能并避免向开启 Cookie 警告的用户发出多个浏览器警告,当指定的时间逝去大半时将更新 Cookie。这可能导致精确性受损。默认值为 "30"(30 分钟)。

  loginUrl

  指定如果找不到任何有效的身份验证 Cookie,将请求重定向到的用于登录的 URL。默认值为 login.aspx。

  defaultUrl

  定义在身份验证之后用于重定向的默认 URL。此属性是 .NET Framework 2.0 版中的新属性。默认值为 "default.aspx"。

  slidingExpiration

  指定是否启用可调过期时间。可调过期将 Cookie 的当前身份验证时间重置为在单个会话期间收到每个请求时过期。默认值为true。

  下面在项目中创建一个文件夹Member,先在此文件夹下创建一个web.config文件,内容如下: <?xml version="1.0" encoding="utf-8"?>

  <configuration>

  <appSettings/>

  <connectionStrings/>

  <system.web>

  <authorization>

  </authorization>

  </system.web>

  </configuration>

相关内容
赞助商链接