MembershipProvider: Automatische Abmeldung, wenn Sitzung beendet
-
01-10-2019 - |
Frage
Ich habe einige Probleme mit meiner Website bekommen die authentifizierte Benutzer automatisch abmelden, wenn die Sitzung beendet wird (der Benutzer den Browser schließt).
Dies ist, was ich in meinem web.config haben:
<authentication mode="Forms">
<forms name="AuthCookie" protection="All" loginUrl="~/default.aspx" path="/" cookieless="UseCookies" timeout="2592000"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
<membership defaultProvider="ASPPGSqlMembershipProvider" userIsOnlineTimeWindow="20">
<providers>
<clear />
<add name="AspNetSqlMemberShipProvider" applicationName="umbraco4" type="System.Web.Security.SqlMembershipProvider" connectionStringName="UmbracoDb" requiresUniqueEmail="true" enablePasswordReset="true" enablePasswordRetrieval="false"/>
<add name="UsersMembershipProvider" applicationName="umbraco4" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" />
<add name="ASPPGSqlMembershipProvider" applicationName="umbraco4"
passwordStrengthRegularExpression="" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
forumUpfileFolderPath="D:\www\files"
type="ASPPG.MembershipProviders.ASPPGSqlMembershipProvider, ASPPGSiteIntegrationPackage"/>
</providers>
</membership>
Dies ist, wie ich in dem Benutzer anmelden:
if (Membership.ValidateUser(txtUserName.Text, txtPasssword.Text)) {
HttpCookie cookie = FormsAuthentication.GetAuthCookie(txtUserName.Text, false);
cookie.Expires = DateTime.Now.AddDays(1);
cookie.Domain = ConfigurationManager.AppSettings["Level2DomainName"];
HttpContext.Current.Response.Cookies.Add(cookie);
Response.Redirect(Request.Url.ToString());
}
Wenn ich den Browser zu schließen, wird der Benutzer noch angemeldet. Wie kann ich die Website die Benutzer durch eine Option vergessen, so dass der Benutzer selbst entscheiden kann, ob die Website erinnern soll oder nicht?
Vielen Dank im Voraus:)
M
Lösung
Haben Sie nicht versucht, die cookie.Expires
oder zumindest Einstellung Einstellung es DateTime.MinValue
für Benutzer, die nicht sein ‚erinnert‘ wollen?
MSDN :
Einstellen der Verfällt Eigenschaft auf MinValue macht es zu einem Session-Cookie, das seinen Standardwert ist.