2016-04-29 13 views
-1

Ich habe eine Datenbank mit Benutzern, die Benutzer können unterschiedliche Rollen haben.MVC Web API benutzerdefinierte Standardauthentifizierung

Ich möchte grundlegende Authentifizierung für meine MVC Web API implementieren und ich möchte Methoden mit einem Authorize Tag taggen und auch userType als Parameter übergeben.

[Authorize(admin)] 
public bool Test() 
{ 
} 

[Authorize(user)] 
public bool Test1() 
{ 
} 

ich nicht herausfinden kann, wie dieses Attribut zu machen, zum Beispiel, wie kann ich ein Attribut machen, die einfach macht immer eine Methode false zurückkehren?

[AttributeUsage(AttributeTargets.All)] 
public class TestAttribute: System.Attribute 
{ 
    //Return false? 
} 

Ich bin auf der Suche nach einem Ratschlag.

EDIT:

Ich habe die folgende Klasse:

ilterContext.HttpContext.Response.StatusCode = 401; 
        filterContext.Result = new EmptyResult(); 
        filterContext.HttpContext.Response.End(); 
       } 
      } 
     } 

     private void CacheValidateHandler(HttpContext context, object data, ref HttpValidationStatus validationStatus) 
     { 

fügen Sie dann i [BasicAuthorize] ein Verfahren, aber es mir nach wie vor ohne Grund autentication zugreifen lassen.

eine Idee?

+0

Sie möchten Rollen überprüfen, aber Ihr Code überprüft den Benutzernamen und das Kennwort für eine Datenschicht. Wo ist dein Rollencheck? –

+0

Ich habe gerade versucht, die grundlegende Auth zu arbeiten, aber ich kann keinen Code bekommen, um es BasicAuthorizeAttribute überhaupt jetzt zu starten. –

Antwort

0

Ich schlage vor, Sie lesen einige Grundlagen über Autorisierung und Authentifizierung und wie das Authorize Attribut angewendet werden kann.

Rollen sind out of the box. Verwenden Sie einfach die integrierten Funktionen des Authorize Attribut: Beispiel:

[Authorize(Roles="admin")] 
public bool Test() 
{ 
} 

Wenn Sie eine benutzerdefinierte Implementierung benötigen müssen Sie von System.Web.Mvc.AuthorizeAttribute erben statt von System.Attribute. Alles andere ist von hier aus ziemlich geradlinig. Einfaches Beispiel, das hier erklärt wird: Basic Authorization Attribute in ASP.NET MVC

+0

Ich habe versucht, den Code in Ihrem Link, aber immer noch nicht funktioniert, aktualisiert meine Frage, bitte sehen. –

+0

Es sieht so aus, als ob Sie einfach Code kopieren und einfügen, ohne die dahinter stehenden Prinzipien zu verstehen. Haben Sie eine Rolle "admin"? Wenn nicht, könnte das der Grund sein, warum meine erwähnte Dummy Probe nicht funktioniert. Verwenden Sie außerdem die Eigenschaft 'Roles' gemäß ihrer beabsichtigten Verwendung. –

Verwandte Themen