Membershipprovider:会话结束时自动注销
问题描述:
当会话结束时(用户关闭浏览器),我的网站有一些自动注销经过身份验证的用户的问题。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());
}
当我关闭浏览器,用户仍然登录。我如何通过一个选项让网站忘记用户,这样用户自己可以决定网站是否应该记住?
感谢提前:)
中号
答
您是否尝试过不设置cookie.Expires
,或者至少将其设置为DateTime.MinValue
供用户不希望被“记忆”?
从MSDN:
设置为MINVALUE使这是一个会话cookie,这是它的默认值的Expires属性。
您从System.Net命名空间引用,但它似乎问题出现在System.Web命名空间中。我不知道它们是如何相关的,但是我没有在System.Web命名空间中找到有关cookie.Expires的类似评论。 – abelenky 2010-09-09 15:35:09
@abelenky我无法从System.Web中找到很好的引用,所以我做了一个快速搜索并在System.Web中找到它。我不确定为什么这个评论不包含在这两个地方。 – Kelsey 2010-09-09 15:46:51
@able - cookie是一个cookie,可以是Cookie或HttpCookie。只有包装器发生了变化,而不是与ASP.net表单身份验证相关的底层实现和行为。 – 2010-09-23 04:17:40