写这个是线程安全的吗?

时间:2013-04-28 13:46:04

标签: asp.net

我可以编写类似下面的内容(在ASP.NET网页中使用的程序集中)吗?

public static string CurrentAuthenticatedUserFromHttpRequest
{
    get
    {
        if (HttpContext.Current.Items["AuthUser"] == null)
        {
            return string.Empty;
        }

        return HttpContext.Current.Items["AuthUser"].ToString(); //set in "TryAuthenticate"
    }
}

它将是一个静态只读属性。值(到HttpContext.Current.Items [“AuthUser”])是通过httphandler设置的。

只是想知道在多个请求期间这将如何执行。当多个用户尝试访问同一属性(在多个请求中)时,即使大量请求进入,数据是否准确?

1 个答案:

答案 0 :(得分:5)

是的,这是线程安全的。静态HttpContext.Current属性因线程而异,并包含线程当前正在处理的请求的上下文。