我们以前在应用程序上启用了无cookie会话。我们已禁用此功能并转到会话cookie,但我们遇到了问题。将URL中的会话ID作为书签的用户仍然可以使用URL中的会话ID导航到该站点。我已将其设置为不重新生成过期的会话但仍然允许它仍然允许它。它最终还会创建一个会话cookie,然后我们会得到随机会话丢失。我提出了一些不稳定的解决方法,比如使用URL重写剥离它并通过javascript剥离它但这看起来很糟糕。我有什么内置的东西可以帮到这个吗?这并不重要,但我会补充说我们正在使用状态服务器。
答案 0 :(得分:2)
对于其他寻求不需要用户更新书签的解决方案的人,我可以在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;
}
答案 1 :(得分:0)
URL重写是一个很好的解决方案。
但是,如果您希望用户更新他们的书签,(这样您最终可以退出URL重写),您可能会考虑让您的URL重写将它们发送到一个页面告诉他们:
然后给他们通常的选项登录等。