asp.net - 写这个是线程安全的吗?

标签 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 设置的。

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

最佳答案

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

关于asp.net - 写这个是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263489/

相关文章:

c# - 防止在 Visual Studio 中加载符号

asp.net - 当服务器的物理路径为 UNC 格式时,我的系统管理员是否疯狂 :-) Does ASP. NET MVC 中断?

asp.net - 已编译的 XSLT 如何在 IIS 上工作?

html - 相关容器内的固定位置未按预期工作?

c# - 使用 MySQL 数据库创建 ADO.Net 实体数据模型?

javascript - Bing map v7 模块未加载

javascript - 点击按钮刷新页面后打开Modal

c# - 根据 GridView 中绑定(bind)的数据更改 ASP 按钮的属性?

javascript - 覆盖正文区域的垂直侧边菜单

c# - 静态属性最终会出现在 gen2 中吗?