http://localhost/CookielessFormsAuthTest/(F(-k9DcsrIY4CAW81Rbju8KRnJ5o_gOQe0IOUFTJe9jvgA2))/Test.aspx
括号中的 URL 部分包含 Cookie 通常将包含的数据。该数据在请求处理过程中由 ASP.NET 删除。该步骤由 ASP.NET ISAPI 筛选器执行,而不是在 HttpModule 类中执行。如果从一个 .aspx 页读取 Request.Path 属性,您在 URL 中不会看到任何额外的信息。如果重定向请求,URL 将自动重写。
注 难以保证 URL 中包含的身份验证票的安全。当安全性极为重要时,您应该使用 Cookie 存储身份验证票。
返回页首ASP.NET 2.0 引入了成员身份功能和一组登录 Web 服务器控件,它们简化了使用窗体身份验证的应用程序的实现。
成员身份为应用程序用户提供凭据存储和管理。它还提供一个成员身份 API,可以在使用窗体身份验证时简化用户凭据的验证任务。该成员身份功能构建于提供程序模型之上。该模型允许实现和配置指向不同用户存储的不同提供程序。ASP.NET 2.0 包括以下成员关系提供程序:
• | Active Directory 成员关系提供程序。该提供程序使用 Active Directory 或 Active Directory 应用程序模式 (ADAM) 用户存储。 |
• | SQL Server 成员关系提供程序。该提供程序使用 SQL Server 用户存储。 |
还可以添加对自定义用户存储的支持。例如,可以添加对其他轻量级目录访问协议 (LDAP) 目录或其他现有公共标识存储的支持。为此,创建一个从 MembershipProvider 抽象基类继承的自定义提供程序。
ASP.NET 登录控件自动使用成员身份和窗体身份验证,并封装提示用户输入凭据,验证用户,恢复或替换密码等所需的逻辑。实际上,ASP.NET 登录控件在窗体身份验证和成员身份上提供一个抽象层,并且取代了您使用窗体身份验证时通常必须进行的大多数或全部工作。
有关使用成员身份功能和登录控件的详细信息,请参阅 How To: Use Membership in ASP.NET 2.0。
返回页首在 Web 场中,无法确保哪个服务器将处理连续请求。如果用户在一台服务器上经过身份验证,但下一个请求在另一台服务器上进行,则身份验证票将导致验证失败并请求用户重新进行身份验证。
machineKey 元素中的 validationKey 和 decryptionKey 属性用于对窗体身份验证票进行哈希操作和加密。这些属性的默认值为 AutoGenerate.IsolateApps。这些密钥是针对每个应用程序自动生成的,在每台服务器上都不同。因此,在一台计算机上加密的身份验证票无法在 Web 场中的另一台计算机或者同一台 Web 服务器上的另一个应用程序中进行解密和验证。
为了解决该问题, Web 场中所有计算机上的 validationKey 和 decryptionKey 值都必须相同。有关配置 machineKey 元素的详细信息,请参阅 How To: Configure MachineKey in ASP.NET 2.0。
返回页首• | How To: Protect Forms Authentication in ASP.NET 2.0 |
• | How To: Use Forms Authentication with SQL Server in ASP.NET 2.0 |
• | How To: Use Forms Authentication with Active Directory in ASP.NET 2.0 |
• | How To: Use Forms Authentication with Active Directory in Multiple Domains in ASP.NET 2.0 |
使用 Wiki 或电子邮件提供反馈:
• | Wiki。Security Guidance Feedback Wiki 页: http://channel9.msdn.com/wiki/default.aspx/Channel9.SecurityGuidanceFeedback |
• | 电子邮件。请将电子邮件发送至 secguide@Microsoft.com。 |
我们对有关以下内