使用属性值与会话值,asp.net网站

时间:2013-05-07 14:56:20

标签: asp.net session

我试着去做一些与平常不同的事情。 在我设置会话值并在我的网站上重用这些值之前。 但我开始问自己,我可以使用属性值。这就是我正在考虑的问题,它看起来效果很好。

C#,4.0

而不是:

string strpersonid = userinfolist[0].ToString();
HttpContext.Current.Session.Add("personid", strpersonid);

或者:

Session["sosuserid"] = "00001";

为什么不使用: 的Default.aspx -

private static string userid;
        public static string _UserID
        {
            get
            {
                return userid;
            }
            set
            {
                userid = value;
            }
        }

 _UserID = upUser.Name.ToString();

(来自AD电话)

一旦用户提交表单,我就有一个可以重用的buslogic类:

public class buslogic : _default

String userID = _UserID;

使其保持静态可以保证线程安全,正确吗?

思想,想法?感谢名单。

更新: 如果有帮助,default.aspx页面会让用户自己提交(default.aspx.cs,codebehind)。在用户表单提交时,该页面正在使用属性值(调用busLogic类,我认为这是问题)。

我也发现了这个: To get public property values from the source page

1 个答案:

答案 0 :(得分:1)

使用HttpContext.SessionHttpContext.Items为每个请求和主题提供单独的后备存储。

这使得您的代码在多个线程上运行时可以正常工作,并确保每个请求都有自己的值。

如果您使用单个static字段,则所有请求都将使用相同的字段,并且事情会变得非常混乱。