我想使用Windows帳戶來保護WCF服務。該服務應該在許多使用不同語言的系統上運行。我如何設置具有語言獨立角色名稱的PrincipalPermission?如何設置多語言PrincipalPermission角色名稱?
我發現了這樣一個醜陋的解決方法。
[PrincipalPermission(SecurityAction.Demand, Role = "Builtin\\Administrators")] // English
[PrincipalPermission(SecurityAction.Demand, Role = "Vordefiniert\\Administratoren")] // German
public string HelloWorld()
{
return "Hello";
}
我不認爲這是一個很好的解決方案,有沒有什麼辦法讓這種語言獨立?有沒有辦法使用帳戶SID而不是字符串?
不,它不起作用,主要邏輯在WindowsPrincipal.IsInRole(string)方法中。我用反射器看了一下,沒有找到角色名稱的任何「翻譯」。只需嘗試一下你的自我: WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool english = principal.IsInRole(「Builtin \\ Administrators」); bool german = principal.IsInRole(「Vordefiniert \\ Administratoren」); 我和你一樣驚訝,可能是我失去了一些東西...... – 2009-05-05 06:44:08