HttpContext.User.Identity.Name返回对象引用错误

时间:2014-03-19 14:18:36

标签: httpcontext object-reference

我有一个控制器:AdminController,其中有一个具有此声明的方法:

string user = HttpContext.User.Identity.Name.ToUpper();

它为我提供了一个未设置为对象错误实例的对象引用...

但是,我有另一个控制器(BatchesController),我在其中执行此操作:

Regex.Match(HttpContext.User.Identity.Name, @"([^\\]+$)").Groups[0].Value

工作正常......

我还有另一个使用它的控制器:

public class AuthoriseUser : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            string username = httpContext.User.Identity.Name.ToString().ToUpper();
            List<string> a = GetAll();
            Boolean authorise = false;

            if (httpContext == null)
            {
                throw new ArgumentNullException("httpContext");
            }

            IPrincipal user = httpContext.User;
            if (!user.Identity.IsAuthenticated)
            {
                authorise = true;
            }

很抱歉,这只是一个片段。但它确实有效。

为什么它在那个地方失败了?如果您需要更多情况,请告诉我。

1 个答案:

答案 0 :(得分:0)

问题是我正在创建一个新的AdminController对象:

AdminController ac = new AdminController();

相反,我将用户存储在变量中并将其传递而不是使用&#39;用户&#39;变量