2015-06-03 13 views

Antwort

19

Wenn Sie nur wissen müssen, wenn das Benutzerobjekt authentifiziert ist, sollte diese Eigenschaft den Trick:

User.Identity.IsAuthenticated 

Wenn Sie von einer Aktion zu verhindern, indem ein nicht authentifizierter Benutzer aufgerufen wird, die folgende Attributklasse funktioniert super.

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(); 
     } 
    } 
} 

Ich benutze dies in meiner Basis-Controller-Klasse wie folgt.

[BasicAuth] 
public abstract class BaseAuthorizedController : Controller 
+0

gibt es eine [autorisieren] Attribut bereits im Rahmen, und Sie können das Attribut als globaler hinzuzufügen, ohne Verwendung eines Basis-Controller wie:. Opt.Filters.Add (neu AuthorizeFilter (neu AuthorizationPolicyBuilder() RequireAuthenticatedUser(). Bauen())); Es gibt auch ein [AllowAnonymous] -Attribut, so dass Sie das beispielsweise auf Ihrer Anmeldeseite haben können. –