Asp.net会员自动注销

发布于 2024-09-02 02:17:20 字数 861 浏览 7 评论 0原文

我最近部署了一个使用 asp.net 成员身份 (SqlMembershipProvider) 的应用程序,我不知道为什么,但它会在不活动 1 分钟后自动注销。这在我的开发环境中不会发生。我什至将 userIsOnlineTimeWindow 设置为 60,这应该以分钟为单位。有什么想法为什么会发生这种情况吗?

我正在部署到共享托管环境上的虚拟目录。 这是我设置会员提供商的方法

<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>

I recently deploy an application that uses asp.net membership (SqlMembershipProvider) and I dont know why but it automatically log out after 1 minute of inactivity. This doesn´t happen on my development environment. I even set the userIsOnlineTimeWindow to 60 which is supposed to be in minutes. Any ideas why this is happening?

Im deploying to a virtual directory on a shared hosting environment.
Here is how I set up the membership provider

<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不喜欢何必死缠烂打 2024-09-09 02:17:20

在此找到解决方案 博客。这是一个摘要:

众所周知,在网络场中运行时需要指定相同的计算机密钥条目。这是因为 ASP.NET MVC 中的 FormsAuthTicket 或 AntiForgeryToken 等内容默认使用计算机密钥值来加密详细信息。否则,当用户负载平衡到不同的服务器时,用户将被重定向回登录表单,或者验证将失败。当解密结果与 FormsAuth 的 cookie 不匹配时,就会发生这种情况。导致用户一直想知道为什么他必须一遍又一遍地登录。

在 2 个不同的 Web 托管提供商遇到此问题后,托管提供商启动了您的应用程序的多个虚拟实例。这将重新创建网络场场景。

Found the solution on this Blog. Here's an abstract:

It is well known that you need to specify the same machine key entry when running in a web farm. This is due to the fact that things such as FormsAuthTicket or the AntiForgeryToken in ASP.NET MVC by default use the machine key values for encrypting details. Otherwise the user will be redirected back to the login form or validation will fail, when they are load balanced to a different server. This occurs when the decrypted results do not match the cookie in the case for FormsAuth. Causing the user to keep wondering why he’s having to sign-in over and over.

Having encountered this problem with 2 different web host providers, it turns out hosting providers spin up several virtual instances of your app. This recreates the web farm scenario.

倾城花音 2024-09-09 02:17:20

如前所述,您的问题可能是实例问题。

用于加密/解密/散列的动态生成的 machineKey 在每台计算机上都会有所不同,从而导致应用程序的不同实例无法识别票证。

在 web.config 中显式指定 machineKey 部分将确保应用程序的所有实例都将遵守票证,无论来源如何。

在此处生成 machineKey 部分 http://www.developmentnow.com/articles/machinekey_generator.aspx

并将其粘贴到应用的 部分,以便应用的所有实例都将使用相同的加密密钥。

这可能会解决您的问题。

As stated, your problem could be an instancing issue.

The dynamically generated machineKey, which is used for encryption/decryption/hashing, is going to be different on every machine resulting in tickets that are not recognized by different instances of your application.

Explicitly specifying a machineKey section in your web.config will ensure that all instances of your application will honor a ticket regardless of source.

Generate a machineKey section here http://www.developmentnow.com/articles/machinekey_generator.aspx

and paste it into the <system.web> section of your app so that all instances of your app will use the same encryption keys.

This may solve your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文