2012-11-05 12 views
9

nie jestem pewien czego mi brakuje, ale ja naprawdę nie może odnosić się do User.Identity pod OnActionExecuting(ActionExecutingContext filterContext)nie można uzyskać dostępu do User.Identity pod 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) 

Wszelkie pojęcia jak to naprawić?

Odpowiedz

7

Znalazłem rozwiązanie.

Powinno być

filterContext.HttpContext.User.Identity.IsAuthenticated 
9

Uważam, że należy używać AuthorizeAtribute zamiast ActionFilter. Wypróbuj coś takiego:

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

public class AuthorizeUser : AuthorizeAttribute 
{ 
    public override void OnAuthorization(AuthorizationContext filterContext) 
    { 
     var id = filterContext.RequestContext.HttpContext.User.Identity; 
    } 
} 
Powiązane problemy