首页 新闻 搜索 专区 学院

mvc方法前加上[Authorize]标记,报错!

1
[已解决问题] 解决于 2011-03-31 16:45

 [Authorize]     

 public ActionResult Default()       

 {           

  return View();       

 }

报错:

“/”应用程序中的服务器错误。未将对象引用设置到对象的实例。说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。


堆栈跟踪:

[NullReferenceException: 未将对象引用设置到对象的实例。] System.Web.Mvc.AuthorizeAttribute.AuthorizeCore(HttpContextBase httpContext) +38 System.Web.Mvc.AuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext) +160 System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) +155 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +784976 System.Web.Mvc.Controller.ExecuteCore() +159 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335 System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62 System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20 System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371


版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1

问题补充: System.Security.Principal.GenericPrincipal user 为null 在那里初始化 user
smat的主页 smat | 菜鸟二级 | 园豆:205
提问于:2011-03-30 11:25
< >
分享
最佳答案
0

看样子是MVC没有正确初始化,Membership和mvc的初始化代码加了吗?

使用MVC框架见一个例子对照一下,修改差异就行

2012 | 高人七级 |园豆:20903 | 2011-03-30 17:57
其他回答(2)
0

System.Security.Principal.GenericPrincipal user 为null这应该是你的IPrincipal没有initialize好,你code应该没有什么问题,看看你的web.config里面的membership section.

本城人 | 园豆:205 (菜鸟二级) | 2011-05-31 16:12
0

你的问题怎么解决的啊,我也遇到这个问题了,求答案

BW初心 | 园豆:206 (菜鸟二级) | 2019-09-19 16:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册