放在web.config中的<system.web>节下面,
格式:
<machineKey
validationKey="AutoGenerate|value[,IsolateApps]"
decryptionKey="AutoGenerate|value[,IsolateApps]"
validation="[SHA1|MD5|3DES]"
decryption="[Auto|]"
/>
用法:
decryption
可选的 String属性。
指定用于对数据进行解密的哈希算法的类型。
此属性可以为下列可能值之一。
值说明
Auto
指定 ASP.NET基于配置的默认设置来确定使用哪个解密算法。这是默认值。
AES
指定 ASP.NET使用 AES(Rijndael)算法来对数据进行解密。AES是用于对数据进行解密的默认算法。
3DES
指定 ASP.NET使用 TripleDES算法来对数据进行解密。TripleDES(3DES)算法使用 DES算法的三次连续迭代。
此属性是.NET Framework 2.0版中的新属性。
默认值为"Auto"。
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"。
validation
必选的 MachineKeyValidation属性。
指定用来验证数据的加密类型。
此属性可以为下列可能值之一。
值说明
AES
指定 ASP.NET使用 AES(Rijndael)算法来对数据进行解密。AES是用于对数据进行解密的默认算法。
MD5
指定 ASP.NET使用 Message Digest 5(MD5)哈希算法。此算法的性能比 SHA1好。
SHA1
指定 ASP.NET使用 SHA1哈希算法。使用此算法可增强安全性。
该值是默认值。
TripleDES
指定 ASP.NET使用 TripleDES算法来对数据进行解密。TripleDES算法使用 DES算法的三次连续迭代。
在.NET Framework 1.0和 1.1版中,该值为"3DES"。
默认值为"SHA1"。
validationKey
必选的 String属性。
指定用于验证加密数据的密钥。当 enableViewStateMAC为 true时,validationKey用于创建消息身份验证代码(MAC),以确保视图状态未被篡改。validationKey还可用于生成进程外、应用程序特定的会话 ID,以确保每个会话具有独立的会话状态变量。
如果向 ValidationKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。IsolateApps也是默认值的一部分。
如果您需要在 Web服务器网络(网络场)中支持配置,请手动设置 ValidationKey属性以确保配置保持一致。
validationKey属性可以为下列可能值之一。
值说明
AutoGenerate
指定 ASP.NET生成随机密钥并将其存储在 LSA中。此选项是默认值。如果向 validationKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。
value
指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES加密时,密钥长度应该为 16个字符;而使用三重 DES加密时,密钥长度应该为 48个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 CryptographyRNGCryptoServiceProvider类)来创建这些密钥。只有在计算机使用 128位加密的情况下,ASP.NET才能使用三重 DES。如果向 validationKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。
默认值为"AutoGenerate,IsolateApps"。
文章到此结束,如果本次分享的machinekey和machineKey元素,在machine.config文件里吗的问题解决了您的问题,那么我们由衷的感到高兴!