首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.Net MVC应用程序注销未完全注销

ASP.Net MVC应用程序注销未完全注销
EN

Stack Overflow用户
提问于 2013-08-16 19:42:40
回答 2查看 8.6K关注 0票数 2

这个应用程序正在运行的环境中,一些用户仍然在使用IE7,如果这有任何区别。我们所看到的是,偶尔有人登录后,其他人登录,他们仍然从上一个人的残留物,它可能显示的人的个人资料。如有任何建议,将不胜感激。

在我的asp.net mvc应用程序中,我使用下面的注销方法

代码语言:javascript
复制
public ActionResult LogOff()
{

    System.Web.HttpContext.Current.Response.Cookies.Clear();
    FormsService.SignOut();
    Session["User"] = null;
    Session.Clear();
    Session.Abandon();
    Session.RemoveAll();

    return Redirect("/");
}

该应用程序使用保存到数据库中的会话,因为它运行在两个不同的web服务器上。

下面是来自web.config的一些设置

代码语言:javascript
复制
<sessionState sqlConnectionString="LiveDB" />
<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership>
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LiveDB" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="50" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>
<profile>
  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="LiveDB" applicationName="/" />
  </providers>
</profile>
<roleManager enabled="true">
  <providers>
    <clear />
    <add connectionStringName="LiveDB" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
    <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-16 20:10:16

如果你用FormAuthentication像这样登录-

代码语言:javascript
复制
FormsAuthentication.SetAuthCookie("username", false);

那么注销应该是

代码语言:javascript
复制
FormsAuthentication.SignOut();

如果仍然存在问题,可以强制cookie像this一样过期。

票数 4
EN

Stack Overflow用户

发布于 2013-08-16 20:10:08

MembershipSession提供程序分别工作。两名成员可使用一次会议。这不是一条规则,但它可以。

我不确定,但我对你的问题有个建议。Session拥有IsNewSession属性。Microsofts说,它“获得一个值,指示会话是否使用当前请求创建。”

因此,您可以尝试检查登录用户的Session是否是新的,因为他可能会与旧用户共享会话,这可能是看到其他用户配置文件的原因之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18280972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档