xiaoyisi 2020-06-08 12:18 采纳率: 0%
浏览 80

asp.net FORMS验证登陆诡异问题?

首次登陆,正常,没有任何问题,登陆成功马上退出再登陆就会有问题了,即自动跳到登陆页面,查看GOOGLE浏览器调试器,发现没有COOKIE写入。如果退出隔几分钟再登陆就可以,会有相应COOKIE写入了!
服务端断点调试发现,虽然退出了,客户端浏览器的COOKIE也不见了,但是服务端的COOKIE依然存在,无法清除。这是问题症结。
如果隔了几分钟再登陆,COOKIE为null,就可以正常登陆,尝试各种办法,登录前尝试各种删除或者覆盖COOKIE,但是依然不行。
.config配置

<authentication mode="Forms">
      <forms name="aspxuserlogin" protection="All" timeout="20" loginUrl="login.ashx" slidingExpiration="true" />
    </authentication>

验证用户后的写入COOKIE:

var ticket = new FormsAuthenticationTicket(
                version: 1,
                name: userName,
                issueDate: DateTime.Now,
                expiration: DateTime.Now.AddMinutes(30),
                isPersistent: false,
                userData: _roles,
                cookiePath: FormsAuthentication.FormsCookiePath);
var ticketCrypt = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticketCrypt);
cookie.HttpOnly = true;
if (FormsAuthentication.CookieDomain != null)
{
      cookie.Domain = FormsAuthentication.CookieDomain;
}
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Expires = DateTime.Now.AddMinutes(30);
context.Response.Cookies.Add(cookie);

退出代码:

FormsAuthentication.SignOut();
Session.Abandon();

为何会存在浏览器COOKIE不见了,服务端的COOKIE还存在,就是因为服务端的COOKIE无法及时清除,就无法写入有效的COOKIE,浏览器没有COOKIE写入,就没办法正常登入。这是为何呢?是哪里有缓存吗?

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型