2013-02-21 43 views
7

我在ServiceStack中使用身份驗證功能並將Auth插件配置爲使用CredentialsAuthProvider。在生成的元數據頁面,ServiceStack顯示以下操作:如何從ServiceStack API中刪除AssignRoles和UnAssignRoles

  • 驗證
  • AssignRoles
  • UnAssignRoles

我只使用了驗證操作,所以我想刪除角色操作,以避免該頁面的讀者對如何使用API​​感到困惑。這可能嗎?

回答

16

你能做到這將刪除只AssignRoles和UnAssignRoles

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

authFeature.IncludeAssignRoleServices = false; 

Plugins.Add(authFeature); 
+0

呀那就更好了以下! – mythz 2013-02-28 01:12:57

+0

Boo-yaa!好的解決方案 – ThomasArdal 2013-03-01 20:03:51

6

如有疑問請看Plugins wiki中是否有描述,或者爲此,專用Authentication page

每個插件都有它的哪些覆蓋的行爲,在這種情況下,性能只是可用的路線覆蓋它:

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

這是一個短手:

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查看每個屬性的默認值也很有用。

相關問題