【问题标题】:Disable Cookieless Session .Net MVC 5禁用无 Cookie 会话 .Net MVC 5
【发布时间】:2017-12-24 16:30:56
【问题描述】:

我们之前在我们的应用程序上启用了无 cookie 会话。我们已禁用此功能并转到会话 cookie,但是我们遇到了问题。在其 URL 中将会话 ID 作为书签的用户仍然可以导航到 URL 中具有会话 ID 的站点。我已将其设置为不重新生成过期的会话,但它仍然允许它。它还最终创建了一个会话 cookie,然后我们得到随机会话丢失。我想出了一些不稳定的解决方法,例如使用 URL 重写将其剥离并通过 javascript 将其剥离,但这似乎很糟糕。有什么我缺少的内置功能可以帮助解决这个问题吗?这并不重要,但我会补充说我们正在使用状态服务器。

【问题讨论】:

  • URL 重写是一个很好的解决方案。为什么不呢?

标签: c# asp.net asp.net-mvc session cookies


【解决方案1】:

对于寻找不需要用户更新书签的解决方案的其他人,我可以在我的 Global.asax Application_BeginRequest 中使用以下内容:

void Application_BeginRequest(object sender, EventArgs e) {
    if (CookielessValuesExist()) {
        Response.Redirect(Request.Url.OriginalString, true);
    }
}

private bool CookielessValuesExist() {
    string cookieless = Request.Params["HTTP_ASPFILTERSESSIONID"];
    if (string.IsNullOrWhiteSpace(cookieless)) {
        return false;
    }

    return true;
}

【讨论】:

    【解决方案2】:

    URL 重写是一个很好的解决方案。

    但是,如果您希望用户更新他们的书签(这样您最终可以停用 URL 重写),您可以考虑让您的 URL 重写将他们发送到一个页面,告诉他们这样:

    • 哎呀!那个链接失效了。

    然后为他们提供登录等常用选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 2011-07-23
      • 2011-04-29
      • 2020-12-13
      相关资源
      最近更新 更多