我知道这个解决方案有无数的主题,但我已经设置了代码,只需对此进行修改,因此非常感谢任何帮助。
设置web.config不能解决问题...
<httpCookies httpOnlyCookies="true" lockItem="true" />
并且现在设置ssl不是一个选项,因此剩下的唯一方法是修改现有代码。
我的代码页面加载是这个
protected void Page_Load(object sender, EventArgs e)
{
if (Session["New"] != null && Session["AuthToken"] != null && Request.Cookies["AuthToken"] != null)
{
if (!Session["AuthToken"].ToString().Equals(Request.Cookies["AuthToken"].Value))
{ Response.Redirect("Login.aspx");}
}
else
{Response.Redirect("Login.aspx");}
}
我遇到了这个示例代码来解决这个问题,它说它应该在Page_Load事件下进行,但我无法弄清楚如何去做。
资料来源:https://msdn.microsoft.com/en-us/library/system.web.httpcookie.httponly.aspx
HttpCookie myHttpCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());
myHttpCookie.Name = "MyHttpCookie";
Response.AppendCookie(myHttpCookie);
Response.Write(myHttpCookie.Name);
HttpCookie myHttpOnlyCookie = new HttpCookie("LastVisit",DateTime.Now.ToString());
myHttpOnlyCookie.HttpOnly = true;
myHttpOnlyCookie.Name = "MyHttpOnlyCookie";
Response.AppendCookie(myHttpOnlyCookie);
Response.Write(myHttpOnlyCookie.Name);
我的注销点击事件代码是这个
if (Request.Cookies["ASP.NET_SessionId"] != null)
{
Response.Cookies["ASP.NET_SessionId"].Value = string.Empty;
Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddMonths(20);
}
if (Request.Cookies["AuthToken"] != null)
{
Response.Cookies["AuthToken"].Value = string.Empty;
Response.Cookies["AuthToken"].Expires = DateTime.Now.AddMonths(-20);
}
Response.Redirect("Login.aspx");