2015-06-03 29 views

Odpowiedz

19

Jeśli wystarczy wiedzieć, czy obiekt użytkownika jest uwierzytelniane, ten powinien załatwić sprawę:

User.Identity.IsAuthenticated 

Jeśli trzeba zapobiec czynność przed nazywany przez niezidentyfikowany użytkownik, następujące klasy atrybutu działa świetnie.

public class BasicAuthAttribute : ActionFilterAttribute, IAuthenticationFilter 
{ 
    public void OnAuthentication(AuthenticationContext filterContext) 
    { 
    } 

    public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext) 
    { 
     var user = filterContext.HttpContext.User; 
     if (user == null || !user.Identity.IsAuthenticated) 
     { 
      filterContext.Result = new HttpUnauthorizedResult(); 
     } 
    } 
} 

Używam tego w mojej klasie kontrolera podstawowego w następujący sposób.

[BasicAuth] 
public abstract class BaseAuthorizedController : Controller 
+0

jest w [Autoryzacja] przypisują już w ramach i można dodać atrybut jako globalnego bez użycia kontrolera takiej jak:. Opt.Filters.Add (nowa AuthorizeFilter (nowa AuthorizationPolicyBuilder() RequireAuthenticatedUser(). Budować())); Istnieje również atrybut [AllowAnonymous], dzięki czemu możesz to zrobić na stronie logowania na przykład. –