У меня есть веб-приложение ASP.NET 2010, которое использует элементы управления членством по умолчанию. Когда я вхожу в систему, элемент управления «Вход в систему» на главном устройстве обнаруживает элемент управления «Выход из системы». Когда я нажимаю на него, он перенаправляет меня на страницу по умолчанию, но я замечаю, что, если я вернусь на страницу с проверкой подлинности, он впускает меня. Поэтому я добавил следующий код, когда щелкала ссылка на выход из системы, чтобы убедиться, что cookie уничтожен ,
FormsAuthentication.SignOut()
Session.Abandon()
Но я все еще могу перейти на аутентифицированную страницу. Это останавливает меня, только если я на самом деле закрываю браузер и снова открываю его.
Вот мой web.config ....
<authentication mode="Forms">
<forms
name=".ASPXAUTH"
loginUrl="~/Account/Login.aspx"
protection="All"
timeout="2880"
slidingExpiration="true"
defaultUrl="~/Authenticated/User/UserHome.aspx"
/>
</authentication>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
passwordFormat="Hashed"
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="true">
<providers>
<clear />
<add connectionStringName="ApplicationServices" applicationName="/"
name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>