IsolateApps使指定的解密密钥无效的十六进制字符(IsolateApps causes De

2019-07-20 07:27发布

我上有一个MVC 4现场工作使用身份验证。 该网站要求我指定的计算机密钥值。 我这样做通过IIS接口具有取消选择“在运行时自动生成”,生成的密钥值和具有选定的“生成用于每个应用程序的唯一密钥”

在web.config中的条目看起来是这样的:

<machineKey decryption="DES" decryptionKey="{hex-key value},IsolateApps" 
    validationKey="{hex-key value},IsolateApps" />;

虽然这似乎是另一个Web项目做工精细它会导致“规定的解密密钥无效的十六进制字符” dev的机器我现在的工作对错误(无论是在IIS-Express和IIS 7.5)。

删除",IsolateApps"从键值解决这个问题,但因为我在生产中需要这个选项我不希望现在移除它仅部署时,有这个问题。

是什么赋予了? dev的盒子是一个SQL 2008 R2盒.NET 2.0和.NET 4.0。

Answer 1:

IsolateApps修改使ASP.NET为您的服务器上的每个应用程序的唯一关键。 这是只适用,如果你正在ASP.NET自动生成在运行时的密钥。

如果你没有得到ASP.NET自动生成的密钥,并且不是指定使用的密钥decryptionKey="{hex-key value}" ,那么得到的方式为每个应用程序是ASP.NET使用不同的密钥只需指定在每个应用程序的Web.config不同的密钥。

在IIS配置界面允许您创建与明确的密钥一起一个Web.config IsolateApps改性剂,这是无效的,而且在我看来是在配置GUI中的错误。



Answer 2:

您可以通过在web.config中添加以下的machineKey元素(compatibilityMode =“Framework20SP1”)解决该问题见链接



Answer 3:

这可以是固定的通过添加的machineKey线到你的web.config,并指定钥匙,如下所示(使用自己的密钥虽然当然,这个人是容易被猜到):

<configuration>
 <system.web>
  <machineKey decryptionKey="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0" validationKey="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF00123456789ABCDEF0123456789ABCDEF0123456789ABCDEF00123456789ABCDEF0123456789ABCD" />
 </system.web>
</configuration>


文章来源: IsolateApps causes Decryption key specified has invalid hex characters