加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在会话中存储用户ID

发布时间:2020-12-16 03:51:47 所属栏目:asp.Net 来源:网络整理
导读:当用户登录时,我想将他的userID存储在会话中 HttpContext.Current.Session["UserID"] = 2354; (this is just a hard-coded example) 然后,当我运行页面方法时,如果我这样做 var test = HttpContext.Current.Session["UserID"]; 变量测试会保存我登录时存储的
当用户登录时,我想将他的userID存储在会话中

HttpContext.Current.Session["UserID"] = 2354; (this is just a hard-coded example)

然后,当我运行页面方法时,如果我这样做

var test = HttpContext.Current.Session["UserID"];

变量测试会保存我登录时存储的值吗?

如果这是一种正确的方法,当我从页面方法接收呼叫时如何访问会话?我想在页面方法中放置test = …行,以确定请求来自哪个用户.

谢谢.

解决方法

正如已经回答的那样,是的 – 它应该没问题,但是如果你在使用这种方法[WebMethod]调用服务之前太长时间坐在页面上它就会失败.在这种情况下,最佳做法是检查会话并根据需要重建.任何其他身份验证都是如此,以确保它们不会变得不同步或过期.

[WebMethod(EnableSession = true)]

    HttpContext context = HttpContext.Current;
    if (context.Session["UserID"] == null) {
      Utilites.PopulateSessionVars(context.Request.ClientCertificate,context.Request.ServerVariables["REMOTE_ADDR"]);
    }
    String userId = context.Session["UserID"].ToString();

(其中Utilities.PopulateSessionVars是一种从您用于登录的任何内容重建会话数据的方法…在我的情况下是PKI证书)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读