我有两个自编书籍成员资格提供者的网站,这些网站是在不同的Web应用程序和不同的应用程序池中的同一Web上的同一服务器上的hostet.
以前我遇到了问题,我无法一起登录这两个网站.感谢Remy的post,现在,我必须将name-attribute添加到forms元素.
但是现在我遇到了asp登录控件的remember-me选项停止工作的问题.正常会话超时后,用户将注销.
web.config文件中的authentication-attributes如下所示:
<authentication mode="Forms" > <forms loginUrl="~/UserMgmt/Login.aspx" timeout="400000" slidingExpiration="true" name="NameOfTheSite"/> </authentication>
更新
我观察到,如果我禁用表单身份验证cookie的加密和验证,问题就消失了.如果我激活加密,验证或同时激活,则问题会重新出现.
我也知道,它与会话cookie名称无关(它们甚至可以是相同的).也许这些信息可以帮助某人弄清楚发生了什么?
更新1
感谢Jason Kealey解决这个问题.我永远都找不到它.
与此同时,我在msdn中找到了相应的信息.在
How To: Configure MachineKey in ASP.NET 2.0
在“Web Farm部署注意事项”部分中写道:
如果要将应用程序与同一服务器上的其他应用程序隔离,请放置< machineKey>在服务器场中每个服务器上的每个应用程序的Web.config文件中.确保为每个应用程序使用单独的键值,但在服务器场中的所有服务器上复制每个应用程序的键.
解决方法
问题可能是您每次启动工作进程时都会自动生成验证密钥. cookie已加密,但是当您返回时,会使用新的服务器端密钥,因此您的cookie无法解密.
查看machineKey部分
http://msdn.microsoft.com/en-us/library/ff649308.aspx
以下是为您生成machineKey部分的内容
http://www.qualitydata.com/products/aspnet-membership/help/configuration/no-machinekey.aspx