Asp.net成员身份自动注销
我最近部署了一个使用asp.net成员身份(SqlMembershipProvider)的应用程序,我不知道为什么,但它在不活动1分钟后自动注销。这种情况不会发生在我的开发环境中。我甚至将userIsOnlineTimeWindow设置为60,这应该在几分钟内完成。知道为什么会这样吗 Im部署到共享主机环境上的虚拟目录。 下面是我如何设置会员资格提供商的Asp.net成员身份自动注销,asp.net,asp.net-membership,membership,Asp.net,Asp.net Membership,Membership,我最近部署了一个使用asp.net成员身份(SqlMembershipProvider)的应用程序,我不知道为什么,但它在不活动1分钟后自动注销。这种情况不会发生在我的开发环境中。我甚至将userIsOnlineTimeWindow设置为60,这应该在几分钟内完成。知道为什么会这样吗 Im部署到共享主机环境上的虚拟目录。 下面是我如何设置会员资格提供商的 <membership defaultProvider="FaceMoviesMembership" userIsOnlineTimeW
<membership defaultProvider="FaceMoviesMembership" userIsOnlineTimeWindow="60">
<providers>
<clear/>
<add name="FaceMoviesMembership" type="System.Web.Security.SqlMembershipProvider" connectionStringName="FaceMoviesAuthConnectionString"
enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" maxInvalidPasswordAttempts="10"
passwordAttemptWindow="60" requiresUniqueEmail="false" passwordFormat="Clear" applicationName="FaceMoviesWeb"
minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0"/>
</providers>
找到了此问题的解决方案。这里有一个摘要: 众所周知,在web场中运行时,需要指定相同的机器密钥条目。这是因为ASP.NET MVC中的FormsAuthTicket或AntiForgeryToken等默认情况下使用机器密钥值加密详细信息。否则,当用户负载平衡到不同的服务器时,用户将被重定向回登录表单,或者验证将失败。在FormsAuth的情况下,当解密的结果与cookie不匹配时会发生这种情况。导致用户不断地想知道为什么他必须一次又一次地登录 两个不同的web主机提供商都遇到了这个问题,结果主机提供商启动了应用程序的几个虚拟实例。这将重新创建web场场景
找到了这个问题的解决方案。这里有一个摘要: 众所周知,在web场中运行时,需要指定相同的机器密钥条目。这是因为ASP.NET MVC中的FormsAuthTicket或AntiForgeryToken等默认情况下使用机器密钥值加密详细信息。否则,当用户负载平衡到不同的服务器时,用户将被重定向回登录表单,或者验证将失败。在FormsAuth的情况下,当解密的结果与cookie不匹配时会发生这种情况。导致用户不断地想知道为什么他必须一次又一次地登录 两个不同的web主机提供商都遇到了这个问题,结果主机提供商启动了应用程序的几个虚拟实例。这将重新创建web场场景
如上所述,您的问题可能是一个实例问题 用于加密/解密/哈希的动态生成的machineKey在每台机器上都会不同,从而导致应用程序的不同实例无法识别票证 在web.config中显式指定machineKey节将确保应用程序的所有实例都将遵守票证,无论其来源如何 在此处生成machineKey部分 并将其粘贴到应用程序的
部分,以便应用程序的所有实例都使用相同的加密密钥
这可能会解决您的问题。如上所述,您的问题可能是一个实例问题 用于加密/解密/哈希的动态生成的machineKey在每台机器上都会不同,从而导致应用程序的不同实例无法识别票证 在web.config中显式指定machineKey节将确保应用程序的所有实例都将遵守票证,无论其来源如何 在此处生成machineKey部分 并将其粘贴到应用程序的
部分,以便应用程序的所有实例都使用相同的加密密钥
这可能会解决你的问题