相聚就是缘

一起飞吧!

 

ASP.NET共享票证

 默认情况下,不能够在多个服务器之间共享认证票据cookie,因为每个服务器会自动产生他自己的key,所以,如果想要共享认证票据cookie,那么服务器间的认证票据的加密码算法\加密码密钥要求致.
必须在要求共享认证票据cookie服务器的machine.config或者web.config文件中
(位置%windir%\Microsoft.NET\Framework\{version}\CONFIG )
声明如下的内容:
如: 
<machineKey validationKey="FE904A3264FAA1460560FB5B4C1712D52EFD9B096E9D7A08CA50ED7718CDE1EF59B4C74E06BF60265356D5A56B309CAD96772F0A7FB8A8FD64A095A99359D4E6" decryptionKey="8FF5EEB96E96894E33FDF51218F9587F606285A6FDB95FEA" validation="SHA1"/>
 

其中decryptionKey

必选的 String 属性。指定用于对数据进行加密和解密的密钥或者生成该密钥的进程。当 validation 设置为 TripleDES 字段时,该属性用于 Forms 身份验证加密和解密以及视图状态加密。

如果向此属性添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。IsolateApps 也是默认值的一部分。

如果您需要在 Web 服务器网络(网络场)中支持配置,请手动设置此属性以确保配置保持一致。

此属性可以为下列可能值之一。

 
说明

AutoGenerate

指定 ASP.NET 生成随机密钥并将其存储在 LSA 中。该值是默认值。如果向 decryptionKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

value

指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES 加密时,密钥长度应该为 16 个字符;而使用三重 DES (3 DES) 加密时,密钥长度应该为 48 个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 RNGCryptoServiceProvider 类)来创建这些密钥。只有在计算机使用 128 位加密的情况下,ASP.NET 才能使用三重 DES。如果向 decryptionKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

默认值为 "AutoGenerate,IsolateApps"



<machineKey> 元素

配置用于加密和解密 Forms 身份验证 Cookie 数据和视图状态数据的密钥,以及配置用于验证进程外会话状态标识的密钥。此节可以在计算机、站点或应用程序级别进行声明,但不能在子目录级别声明。

配置结构:

<configuration>
   <system.web>
      <machineKey>

<machineKey validationKey="AutoGenerate|value[,IsolateApps]"
            decryptionKey="AutoGenerate|value[,IsolateApps]
            validation="SHA1|MD5|3DES"/>

要求

  • 包含在:<system.web>
  • Web 平台:IIS 5.0、IIS 5.1、IIS 6.0
  • 配置文件:Machine.config、Web.config
  • 配置节处理程序:System.Web.Configuration.MachineKeyConfigHandler

具体machineKey配置元素具体说明详见http://msdn2.microsoft.com/zh-cn/library/w8h3skw9(VS.80).aspx

posted on 2007-05-16 16:00  fly8  阅读(495)  评论(0编辑  收藏  举报

导航