ASP.NET跨应用程序进行 Forms 身份验证
2007-09-26 09:06
621 查看
转载:http://msdn2.microsoft.com/zh-cn/library/eb0zx8fc(VS.80).aspx
ASP.NET 支持在分布式环境中(跨单个服务器上的多个应用程序或在网络场中)进行 Forms 身份验证。如果启用了跨多个 ASP.NET 应用程序的 Forms 身份验证,则当用户在应用程序之间切换时,不需要对他们重新进行身份验证。
下面的示例演示了 Web.config 文件的 Authentication 节。除非另行说明,否则 name、protection、path、validationKey、validation、decryptionKey 和 decryption 属性必须在所有应用程序中都完全相同。同样,用于 Cookie 数据的加密和验证密钥以及加密方案和验证方案也必须完全相同。如果设置不匹配,则不能共享 Cookie。
![](http://msdn2.microsoft.com/msdn/Controls/CodeSnippet/zh-cn/copy_off.gif)
复制代码
发出 Cookie 之后,将根据 Cookie 自身中的 Expires 值跟踪 Cookie 的到期时间。这意味着如果两个应用程序具有不同的 Timeout 属性,则将在 Cookie 的整个生存期中保留最初发出每个 Cookie 时设置的到期日期和时间。当更新 Cookie 时,Cookie 的原始到期时间用于计算新到期时间。使用配置 Timeout 值的唯一时间就是最初创建 Cookie 的时间。
ASP.NET 支持在分布式环境中(跨单个服务器上的多个应用程序或在网络场中)进行 Forms 身份验证。如果启用了跨多个 ASP.NET 应用程序的 Forms 身份验证,则当用户在应用程序之间切换时,不需要对他们重新进行身份验证。
配置跨应用程序的 Forms 身份验证
要配置跨应用程序的 Forms 身份验证,请在 forms 和 machineKey 配置节中设置若干属性,以便值对于参与共享 Forms 身份验证的所有应用程序都是相同的。下面的示例演示了 Web.config 文件的 Authentication 节。除非另行说明,否则 name、protection、path、validationKey、validation、decryptionKey 和 decryption 属性必须在所有应用程序中都完全相同。同样,用于 Cookie 数据的加密和验证密钥以及加密方案和验证方案也必须完全相同。如果设置不匹配,则不能共享 Cookie。
![]() 注意 |
---|
运行 ASP.NET 2.0 版的应用程序可以与运行 ASP.NET 早期版本的应用程序共享 Forms 身份验证票证信息,前提是每个 ASP.NET 2.0 版应用程序的 machineKey 元素配置中包括 decryption="3DES"。 |
![](http://msdn2.microsoft.com/msdn/Controls/CodeSnippet/zh-cn/copy_off.gif)
复制代码
<configuration> <system.web> <authentication mode="Forms" > <!-- The name, protection, and path attributes must match exactly in each Web.config file. --> <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" protection="All" path="/" timeout="30" /> </authentication> <!-- Validation and decryption keys must exactly match and cannot be set to "AutoGenerate". The validation and decryption algorithms must also be the same. --> <machineKey validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE" decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F" validation="SHA1" /> </system.web> </configuration>
发出 Cookie 之后,将根据 Cookie 自身中的 Expires 值跟踪 Cookie 的到期时间。这意味着如果两个应用程序具有不同的 Timeout 属性,则将在 Cookie 的整个生存期中保留最初发出每个 Cookie 时设置的到期日期和时间。当更新 Cookie 时,Cookie 的原始到期时间用于计算新到期时间。使用配置 Timeout 值的唯一时间就是最初创建 Cookie 的时间。
相关文章推荐
- ASP.NET跨应用程序进行 Forms 身份验证
- 跨应用程序进行 Forms 身份验证(.NET 1.1)
- 使用Forms进行身份验证(Asp.net)
- 通过使用客户端证书调用 Web 服务以便在 ASP.NET Web 应用程序中进行身份验证
- ASP.NET应用程序的安全方案/简单 Forms 身份验证
- Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",
- 关于asp.net中forms身份验证
- asp.net利用page事件来进行身份验证
- [.NET 基于角色安全性验证] 之三:ASP.NET Forms 身份验证
- asp.net Forms(表单)身份验证
- ASP.NET基于Forms身份权限验证
- ASP.NET 中的表单身份验证(Forms Authentication)
- asp.net Forms身份验证详解
- ASP.NET Forms身份验证登录
- ASP.NET Forms 身份验证
- [.NET 基于角色安全性验证] 之三:ASP.NET Forms 身份验证
- ASP.NET Forms 身份验证概述
- 实现Asp.net Forms身份验证的操作步骤
- 使用ASP.Net Forms模式实现WebService身份验证
- asp.net中使用基于角色的身份Forms验证 (1)