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"); 나는 당신이 놀랐던 것처럼, 내가 뭔가를 놓치고있는 것일 수도있다 ... –
나는 놀랐고 기절했다 ..... sowas deppertes auch! Spinnen, die Microsofties :-) –
@marc_s : 과거에 동의합니다. LDAP를 동기화하고 설치 프로그램을 작성할 때 동의합니다. –