9

我不确定我错过了什么,但我真的无法 User.Identity参考OnActionExecuting(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)

任何线索如何解决它?

4

3 回答 3

13

我找到了解决方案。

它应该是

filterContext.HttpContext.User.Identity.IsAuthenticated
于 2012-11-05T23:39:22.867 回答
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;
    }
}
于 2012-11-05T23:44:17.433 回答
1
filterContext.RequestContext.HttpContext.Request.IsAuthenticated

作品!并且无需检查 id User 或 User.Identity 是否为空

于 2018-07-27T11:34:48.630 回答