所以,我的应用程序很奇怪,当你登录时,你将保持登录一两页然后迷路。我的设置如下:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" timeout="20"/>
</authentication>
<authorization>
<allow users="*" />
</authorization>
<membership defaultProvider="MySqlConnection" userIsOnlineTimeWindow="45">
<providers>
<clear />
<add name="MySqlConnection" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection"
applicationName="HQChannel"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="6" />
</providers>
</membership>
感谢您的帮助。
答案 0 :(得分:3)
这里有两件事让我很突出。首先是你允许*用户而不是?用户。 *表示匿名,?意味着经过验证。我将其更改为以下&amp;看看是否有帮助...
<authorization>
<allow users="?" />
<deny users="*" />
</authorization>
第二个想法是你想在你的身份验证块中添加slidingExpiration =“true”。这将使登录进入滑动窗口 - 所以他们只会在20分钟不活动后退出...
<forms name=".ASPXFORMSAUTH" timeout="20" slidingExpiration="true" />
答案 1 :(得分:1)
我还会检查代码,看看是否正在使用不同的超时覆盖表单身份验证票证,如下面的示例所示。
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket
(
1, // version
txtEmail.Text, // name
DateTime.Now, // issueDate
DateTime.Now.AddMinutes(30), // expiration
false, // isPersistent
roles, // userData
FormsAuthentication.FormsCookiePath // cookiePath
);
如果从代码中明确覆盖设置,则web.config设置将无法按预期工作。