当我从NT服务访问上下文时,为什么会有非null的HttpContext.Current?

时间:2018-07-20 13:13:55

标签: c# asp.net wcf authentication httpcontext

我面临的问题是,HttpContext.Current在我们期望为空时为 NOT 为空。

我的应用程序具有用于验证用户身份的共享类。可以使用Windows身份验证或窗体身份验证来验证用户。此代码检查HttpContext.Current是否为空。如果不是,则尝试使用Forms身份验证进行身份验证;如果不是,则尝试使用Windows身份验证进行身份验证。

示例:

    if (HttpContext.Current != null)
    {
        var formsAuthUser = FormsAuthenticationUser.CreateFormToken(HttpContext.Current.User.Identity.Name);
        if (formsAuthUser != null)
        {
          //Authenticate using Forms authentication
        }
    }

    //Authenticate using Windows authentication

使用此代码的NT服务尝试对用户进行身份验证时,出现了我的问题。启动服务后,var formsAuthUser = FormsAuthenticationUser.CreateFormToken(HttpContext.Current.User.Identity.Name); 行会引发异常。
因为HttpContext.Current.User.Identity.Name为null。

我的问题是为什么当我从NT服务访问上下文并且没有对IIS发出任何请求时,为什么我会有一个非空的HttpContext.Current

任何输入将不胜感激;请让我知道是否能提供更多信息。

0 个答案:

没有答案