如何在asp.net mvc中关闭表单身份验证。我有设置为进入webapplication的register,logon和forgotpassword页面。 最初我
我目前将我的asp.net mvc web应用程序作为单个代码库和多数据库格式托管。我的表单表单在某段时间过期,logon.aspx页面出现在主页的中间。我想出这是因为以下代码:
webconfig:
<authentication mode="Forms"><forms timeout="180000" slidingExpiration="false"/></authentication>
logon.cshtml:
FormsAuthentication.SetAuthCookie(user.UserName, false);
return RedirectToAction("Index", "Home");
我不希望我的用户会话或表单在他们注销之前到期。如何删除身份验证模式或如何解决此超时问题? 请帮忙。
这是我的完整webconfig代码:
<system.web>
<customErrors mode="Off" />
<globalization uiCulture="en-AU" culture="en-AU" />
<!--<sessionState mode="InProc" />-->
<sessionState timeout="1500"></sessionState>
<httpRuntime encoderType="AntiXssEncoder, OnlineAB" />
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms timeout="180000" slidingExpiration="false"/>
</authentication>
<membership>
<!--<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>-->
</membership>
<profile>
<!--<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>-->
</profile>
<!--<roleManager enabled="false">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>-->
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
答案 0 :(得分:2)
根据MSDN:
如果发出请求且超过一半的超时间隔已经过去,则滑动到期会重置有效身份验证cookie的到期时间。如果cookie过期,则用户必须重新进行身份验证。将SlidingExpiration属性设置为false可以通过根据配置的超时值限制身份验证cookie的有效时间来提高应用程序的安全性。
从配置
中删除此属性<authentication mode="Forms">
<forms timeout="180000" slidingExpiration="false"/>
</authentication>
并替换为:
<authentication mode="Forms" />
还会增加会话超时或删除默认值:
删除它:
<sessionState timeout="1500"></sessionState>
答案 1 :(得分:1)