跨应用程序进行 Forms 身份验证

本文介绍如何在多个ASP.NET应用程序间配置共享Forms身份验证,确保用户在不同应用间切换时无需重复登录。主要内容包括配置Web.config文件的关键设置,以及如何在不同应用中保持一致的身份验证票证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!

陈希章

原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/05/28/1491279.html
原文标题:跨应用程序进行 Forms 身份验证
原文发表:2009/5/28 4:24:00

ASP.NET 支持在分布式环境中(跨单个服务器上的多个应用程序或在网络场中)进行 Forms 身份验证。如果启用了跨多个 ASP.NET 应用程序的 Forms 身份验证,则当用户在应用程序之间切换时,不需要对他们重新进行身份验证。

配置跨应用程序的 Forms 身份验证

若要配置跨应用程序的 Forms 身份验证,对于参与共享的 Forms 身份验证的所有应用程序,应将 Web.config 文件的 formsmachineKey 节的属性设置为相同的值。

下面的示例演示了 Web.config 文件的 Authentication 节。除非另行说明,否则 name、protection、path、validationKey、validation、decryptionKey 和 decryption 属性必须在所有应用程序中都完全相同。同样,用于身份验证票证(Cookie 数据)的加密密钥值和验证密钥值以及加密方案和验证方案必须相同。如果设置不匹配,则不能共享身份验证票证。

说明:

运行 ASP.NET 2.0 版或更高版本的应用程序可以与早期版本的 ASP.NET 共享 Forms 身份验证票证信息,条件是每个 ASP.NET 2.0 版(或更高版本)应用程序的 machineKey 元素中都包括 decryption="3DES"。

 
  
  
    
   
      
    
      
    
    
   

    
   
    
   
  
  

 

发出身份验证票证 (Cookie) 之后,将根据 Cookie 自身中的 Expires 值跟踪 Cookie 的到期时间。如果两个应用程序具有不同的 Timeout 属性,则将在每个 Cookie 的生存期中保留到期日期和原始时间戳。当更新 Cookie 时,Cookie 的原始到期时间用于计算新到期时间。使用配置 Timeout 值的唯一时候就是最初创建 Cookie 时。

Forms 身份验证和身份验证服务

也可使用身份验证服务跨应用程序对用户进行身份验证。身份验证服务使您能够从可以发送和使用 SOAP 格式的消息的任何应用程序使用 Forms 身份验证。有关更多信息,请参见 Windows Communication Foundation 身份验证服务概述

作者:陈希章
出处:http://blog.youkuaiyun.com/chen_xizhang
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值