asp.net使用form身份认证“串号问题” ?

草青工作室 2014-07-11 11:19:49
我在使用 form 身份认证时遇到个问题,
A 用户登录后没问题,但是B用户登录登录成功后只要一刷新就变成了 A 用户,且有 A 用户所有权限。
连着测试了好几个用户 C、D、E用户 都有这种情况,只要一刷新就变成 A 用户了。

这个问题大家遇到过吗?怎么排查下
如何 解决呢 ?

实在不知道问题在哪儿啊,给个思路吧 ~~~~~

谢谢了
...全文
166 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangnaisheng 2014-07-11
  • 打赏
  • 举报
回复
全局的static变量,要少用。
草青工作室 2014-07-11
  • 打赏
  • 举报
回复
获得用户信息的代码是 //取得身份验证票 FormsAuthenticationTicket ticket = identity.Ticket; LoginInfoModel userinfo = ticket.UserData....;
草青工作室 2014-07-11
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
是否将身份信息写到了static类型的变量里? .net应用中慎用static,应该放到session或cookies里
哦,asp.net 中 form 认证用的就是 cookie,用的是下面代码简历的 string json = userInfo.ToJsonSerialize(); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1,// version userInfo.UserName, // user name DateTime.Now, // creation DateTime.Now.AddMinutes(120),// Expiration false, // Persistent json, // User data "/"); // cookie path FormsAuthentication.SetAuthCookie(userInfo.UserName, false); // Encrypt the ticket. string encryptedTicket = FormsAuthentication.Encrypt(authTicket); // set cookie domain HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); authCookie.Domain = Globals.RootDomain; // Create the cookie. HttpContext.Current.Response.Cookies.Add(authCookie);
於黾 2014-07-11
  • 打赏
  • 举报
回复
是否将身份信息写到了static类型的变量里? .net应用中慎用static,应该放到session或cookies里

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧