我在MVC 4网站中使用自定义授权属性,该属性充当全局操作过滤器。代码非常简单,如下所示:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
var user = Membership.GetUser(filterContext.HttpContext.User.Identity.Name, true);
if (!filterContext.HttpContext.User.Identity.IsAuthenticated || user == null || !user.IsApproved || user.IsLockedOut|| !System.Web.Security.Roles.GetRolesForUser().Any() )
{
HandleUnauthorizedRequest(filterContext);
}
base.OnAuthorization(filterContext);
}
}
这非常正常,但在我的应用程序中的一个操作方法中,$ .getJSON请求filterContext.HttpContext.User属性调用为null。我正在使用我的getJson请求在data参数中发送连接的字符串,如果此字符串的长度很大,那么我只面对这个问题,否则我永远不会收到null User。任何帮助将非常感激。