2013-02-21 6 views
7

Używam funkcji uwierzytelniania w ServiceStack i skonfigurowałem wtyczkę Auth do korzystania z CredentialsAuthProvider. Na stronie generowanych metadanych, ServiceStack wykazuje następujące operacje:Jak usunąć AssignRoles i UnAssignRoles z ServiceStack API

  • uwierzytelniania
  • AssignRoles
  • UnAssignRoles

jestem tylko przy użyciu operacji Auth, dlatego chciałbym, aby usunąć role operacje, aby uniknąć dezorientacji czytelników tej strony dotyczących korzystania z interfejsu API. czy to możliwe?

Odpowiedz

16

można wykonać następujące czynności, które usunie tylko AssignRoles i UnAssignRoles

AuthFeature authFeature = new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() }); 

authFeature.IncludeAssignRoleServices = false; 

Plugins.Add(authFeature); 
+0

Tak, to jeszcze lepiej! – mythz

+0

Boo-yaa! Świetne rozwiązanie. – ThomasArdal

6

W razie wątpliwości należy sprawdzić, czy istnieje opis w Plugins wiki lub w tym celu, dedykowany Authentication page.

Każda wtyczka ma właściwości przesłanianie to jest zachowanie, w tym przypadku po prostu zastąpić go z tras, które są dostępne:

Plugins.Add(new AuthFeature(() => new AuthUserSession()) { 
    IncludeAssignRoleServices = false 
}); 

który jest krótką rękę:

Plugins.Add(new AuthFeature(() => new AuthUserSession(), 
    new IAuthProvider[] { ... }, 
    ServiceRoutes = new Dictionary<Type, string[]> { 
     { typeof(AuthService), new[]{"/auth", "/auth/{provider}"} }, 
     //Omit the Un/AssignRoles service definitions here. 
    }  
)); 

source code for the AuthFeature jest również przydatny, aby zobaczyć wartości domyślne każdej właściwości.