0

我有一个使用 ASP.Net 成员登录控件进行身份验证的 .Net 应用程序。我将我的应用程序作为网站 ( www.mysite.com ) 发布在 IIS7 上。一切正常。

现在我创建了一个新网站,并在其中添加了一个包含我的发布 ( www.site.com/mysite ) 的应用程序。在此发布中,我无法再登录(我收到“失败”错误)。在互联网上进行大量搜索后,我发现问题是由我的应用程序中自动生成的机器密钥引起的(我没有在 web.config 中设置机器密钥)。现在我无法设置机器密钥,因为我已经在我的应用程序中创建了用户,如果设置机器密钥,他们将无法再登录。

我的问题是如何强制新网站 (www.site.com/mysite) 使用与第一个相同的机器密钥?我尝试设置相同的 AppPool 但没有运气。

备注:我有其他发布工作正常并使用相同的机器密钥,但它们都是网站上的根应用程序(如 www.mysecondsite.com)。此配置 wwww.site.com/mysite 会发生什么/有什么不同导致应用程序生成新密钥?

4

1 回答 1

1

不知道为什么没有人早点回答这个问题。您可以直接在 Web.Config 中输入。或在那里输入值。小心......任何使用此加密的应用程序数据作为密钥在之后被破坏。通常,您为每个站点设置机器并离开它。验证密钥用于加密。即密码匹配非对称方法。解密数据时使用解密密钥获取原始内容(对称)

<system.web>
     <machineKey decryptionKey="3815E48D71E4A60848B5213F1BBD7A2FEDAB229873421929" 
validationKey="3CB08C9B349194F28A340FBDA33BC94F7037FACCF9973CAFCAE4501D7F903BA7C539219FDCA77E2F864D848A60F249B639ED28925B90B3F7EECBB9A70EBE1607" />
</system.web>
于 2012-12-05T12:29:56.493 回答