1

當會話結束時(用戶關閉瀏覽器),我的網站有一些自動註銷經過身份驗證的用戶的問題。Membershipprovider:會話結束時自動註銷

這是我在我的web.config:

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

這是我的用戶登錄:

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()); 
} 

當我關閉瀏覽器,用戶仍然登錄。我如何通過一個選項讓網站忘記用戶,這樣用戶自己可以決定網站是否應該記住?

感謝提前:)

中號

回答

5

您是否嘗試過不設置cookie.Expires,或者至少將其設置爲DateTime.MinValue供用戶不希望被「記憶」?

MSDN

設置爲MINVALUE使這是一個會話cookie,這是它的默認值的Expires屬性。

+0

您從System.Net命名空間引用,但它似乎問題出現在System.Web命名空間中。我不知道它們是如何相關的,但是我沒有在System.Web命名空間中找到有關cookie.Expires的類似評論。 – abelenky 2010-09-09 15:35:09

+0

@abelenky我無法從System.Web中找到很好的引用,所以我做了一個快速搜索並在System.Web中找到它。我不確定爲什麼這個評論不包含在這兩個地方。 – Kelsey 2010-09-09 15:46:51

+0

@able - cookie是一個cookie,可以是Cookie或HttpCookie。只有包裝器發生了變化,而不是與ASP.net表單身份驗證相關的底層實現和行爲。 – 2010-09-23 04:17:40