3

我可以编写如下内容(在 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 设置的。

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

4

1 回答 1

5

是的,这是线程安全的。每个线程的静态HttpContext.Current属性都不同,并且包含线程当前正在处理的请求的上下文。

于 2013-04-28T13:52:26.133 回答