3
靜態我將像這樣進入我的服務:如何以編程方式分配角色和權限,以服務和/或RequestDTOs
[Authenticate]
public class AppUserService : Service
{
[RequiredRole("Administrator")]
public object Post(CreateAppUser request)
{
//.....
}
}
我怎樣才能做到這一點編程?
我會讓用戶使用GUI創建角色。然後我會列出一些可用的方法,例如通過提供使用類似改進代碼的方法:
var appHost = HostContext.AppHost;
var restPaths = appHost.RestPaths;
foreach (var restPath in restPaths)
{
var reqType = restPath.RequestType;
string verbs = string.Empty;
if (restPath.Verbs != null)
{
var counter = 0;
foreach (var verb in restPath.Verbs)
{
if (counter > 0) verbs += ", ";
verbs += verb;
counter++;
}
}
Debug.WriteLine($"Path: {restPath.Path} | Verbs: {verbs} | Name: {reqType.Name} FullName: {reqType.FullName}");
}
上面的代碼輸出類似
Path: /appusers | Verbs: POST | Name: CreateAppUser FullName: MyServer.ServiceModel.DTOs.Request.CreateAppUser
所以,我可以在我的UI顯示RequestType
的Name
財產,讓他定義是什麼,角色允許調用這個方法。因此,用戶可以創建一個名爲「用戶管理」的角色,並允許該角色的成員執行CreateAppUser
。
使用註釋我會寫
[RequiredRole("Administrator", "User Management")]
public object Post(CreateAppUser request)
{ .... }
這是無論如何可能在C#代碼?
謝謝德米斯,我認爲自定義的RequestFilter是最好的方法。我會稍後再試。 – ThommyB