无法访问OnActionExecuting下的User.Identity(ActionExecutingContext filterContext)

Dev*_*per 9 .net c# asp.net-mvc authorization authorize-attribute

我不知道我错过了什么,但我真的不能参考 User.IdentityOnActionExecuting(ActionExecutingContext filterContext)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using System.Web.Routing;

.....

    public class RealUserAttribute : ActionFilterAttribute
    {
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                 /// if (User.Identity.IsAuthenticated)
Run Code Online (Sandbox Code Playgroud)

有任何线索如何修复它?

Dev*_*per 11

我找到了解决方案.

它应该是

filterContext.HttpContext.User.Identity.IsAuthenticated
Run Code Online (Sandbox Code Playgroud)


Mil*_*jić 9

我相信您应该使用AuthorizeAtribute而不是ActionFilter.尝试这样的事情:

using System.Web;
using System.Web.Mvc;

public class AuthorizeUser : AuthorizeAttribute
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        var id = filterContext.RequestContext.HttpContext.User.Identity;
    }
}
Run Code Online (Sandbox Code Playgroud)