写这个是线程安全的吗?

use*_*687 3 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"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

flu*_*lup 5

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