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

转载 2007年09月26日 09:06:00

转载:http://msdn2.microsoft.com/zh-cn/library/eb0zx8fc(VS.80).aspx

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

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

要配置跨应用程序的 Forms 身份验证,请在 formsmachineKey 配置节中设置若干属性,以便值对于参与共享 Forms 身份验证的所有应用程序都是相同的。

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

Note注意

运行 ASP.NET 2.0 版的应用程序可以与运行 ASP.NET 早期版本的应用程序共享 Forms 身份验证票证信息,前提是每个 ASP.NET 2.0 版应用程序的 machineKey 元素配置中包括 decryption="3DES"

<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 的时间。

 

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

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

ASP.NET Forms 身份验证

ASP.NET Forms 身份验证 ASP.NET Forms 身份验证 概述 ...
  • apinghappy
  • apinghappy
  • 2007年07月18日 10:30
  • 1122

asp.net mvc forms身份认证

web.config配置 增加一个Attribute类,继承自AuthorizeAttributepublic class CustomAu
  • letmefish
  • letmefish
  • 2016年08月10日 16:44
  • 1906

ASP.NET Forms验证详解

创建网站中,常常会使用到身份验证。asp.net中内置了几种身份验证的方式,如Windows、Froms、Passport等。这几种身份验证的方式各有不同。一般来说,网站的身份验证方式都会经过以下几个...
  • moonpure
  • moonpure
  • 2015年04月25日 15:23
  • 2047

跨应用程序进行 Forms 身份验证(.NET 1.1)

正在做一个程序,要整合到另一个系统中,身份控制方面有一些问题,在MSDN中找到了这个链接(ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/...
  • gcs925
  • gcs925
  • 2005年10月12日 08:42
  • 1925

使用ASP.Net Forms模式实现WebService身份验证

在安全性要求不是很高的ASP.Net程序中,基于Forms的身份验证是经常使用的一种方式,而如果需要对WebService进行身份验证,最常用的可能是基于Soap 标头的自定义身份验证方式。如果对两者...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年11月01日 10:47
  • 559

asp.net登录 用Forms身份验证和基于角色的分目录访问

Forms身份验证用来判断是否合法用户,当用户合法后,再通过用户的角色决定能访问的页面。主要思想:Forms身份验证用来判断是否合法用户,当用户合法后,再通过用户的角色决定能访问的页面。 具体步骤: ...
  • bianjing40
  • bianjing40
  • 2015年05月31日 15:30
  • 455

主站和虚拟目录之间的Forms身份验证

最近项目中将一个网站的项目拆开,分别bu
  • king_wgm
  • king_wgm
  • 2014年08月20日 10:49
  • 905

网站发布后,form验证出问题,页面老返回到登陆页面

asp.net程序采用form验证机制,在本地机器上调试时正常,用户验证通过后,正常跳转至访问页面。然而当发布后,用户验证成功后,无法跳转至登陆页面,始终停留于登陆页面。         尝试很多方...
  • handsometone1982
  • handsometone1982
  • 2012年07月02日 13:19
  • 1593

asp.net中的窗体身份验证(完整篇之五:退出登录)

    前面介绍过了如何使用Forms方式进行用户身份验证,然而,在大多网站中都会有一个“退出”功能,让用户可以通出登录。在asp.net中,退出的方式很简单,只要在退出页面中加上代码“FormsAu...
  • smallfools
  • smallfools
  • 2010年01月06日 19:56
  • 4043
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET跨应用程序进行 Forms 身份验证
举报原因:
原因补充:

(最多只允许输入30个字)