Windows hesaplarını kullanarak bir WCF hizmetini güvenli hale getirmeye çalışıyorum. Servis farklı dillerde birçok sistemde çalışmalıdır. Dil bağımsız rol adlarına sahip bir PrincipalPermission nasıl kurabilirim?Çok dilli bir PrincipalPermission rol adı nasıl belirlenir?
Bunun gibi çirkin geçici çözümler buldum.
[PrincipalPermission(SecurityAction.Demand, Role = "Builtin\\Administrators")] // English
[PrincipalPermission(SecurityAction.Demand, Role = "Vordefiniert\\Administratoren")] // German
public string HelloWorld()
{
return "Hello";
}
Bunun iyi bir çözüm olduğunu düşünmüyorum, bu dili bağımsız hale getirmenin bir yolu var mı? Bir string yerine SID hesabını kullanmanın bir yolu var mı?
Hayır, çalışmıyor, ana mantık WindowsPrincipal.IsInRole (dize) yöntemindedir. Reflektörle baktım ve rol isimlerinin herhangi bir "çevirisini" bulamadım. sadece kendiniz deneyin: WindowsPrincipal principal = new WindowsPrincipal (WindowsIdentity.GetCurrent()); bool english = principal.IsInRole ("Yerleşik \\ Yöneticiler"); bool german = principal.IsInRole ("Vordefiniert \\ Administratoren"); Ben senin kadar şaşırdım, bir şey eksik olabilir olabilir ... –
Şaşkın ve sersemlemiş ..... sowas aupp deppertes auch! Die Spinnen, Microsofties ölür :-) –
@marc_s: Geçmişte, bu da beni yakaladı - LDAP ve yazma yükleyicilerini senkronize ederken. –