Impersonation
Şöyle yapılabilir.
IIdentity arayüzü
Bu arayüz doğrulanmış bir kullanıcıyı temsil eder.
Name alanı
Şöyle alırız.
Şöyle oluştururuz.
WindowsIdentity Sınıfı yazısına taşıdım.
IPrincipal arayüzü
Şöyle yapılabilir.
IIdentity arayüzü
Bu arayüz doğrulanmış bir kullanıcıyı temsil eder.
Name alanı
Şöyle alırız.
public static string GetUsername() {
IPrincipal principal = Thread.CurrentPrincipal;
IIdentity identity = principal == null ? null : principal.Identity;
return identity == null ? null : identity.Name;
}
1. GenericIdentityŞöyle oluştururuz.
var genericIdentity = new GenericIdentity("MyUserName");
2. WindowsIdentity sınıfıWindowsIdentity Sınıfı yazısına taşıdım.
IPrincipal arayüzü
Bu arayüz hem IIdentity nesnesini içerir hem de kullanıcının rollerini sorgulamak için metodlar sunar.
IsInRole
Şöyle yaparız.
Constructor
Şöyle yaparız.
SecurityIdentifier sınıfı
Bu sınıfı şöyle elde ederiz.
IsInRole
Şöyle yaparız.
string role = ...;
IPrincipal principal = Thread.CurrentPrincipal;
return principal.IsInRole(role);
Şöyle yaparız.IPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
principal.IsInRole("License_Users");
Hazır bir rol kullanarak şöyle yaparız.IPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
1. GenericPrincipalConstructor
Şöyle yaparız.
var genericIdentity = new GenericIdentity("MyUserName");
var genericPrincipal = new GenericPrincipal(genericIdentity,
new string[] { });
2. WindowsPrincipal Sınıfı
WindowsPrincipal Sınıfı yazısına taşıdım.Bu sınıfı şöyle elde ederiz.
WindowsIdentity identity = ...
SecurityIdentifier sid = identity.User;
Şöyle de kurabiliriz.var fakeSid = new SecurityIdentifier("S-1-3-0");
PrincipalPermission
Bir metodun sadece belli roller tarafından çağrılmasını sağlar.
[PrincipalPermission(SecurityAction.Demand, Role = "Admin")]
void SomeAdminFunction() {...}
IAuthorizationPolicy
Bu arayüzü ve bu arayüzden kalıtan PrincipalAuthorizationPolicy sınıfını anlamadım.
Hiç yorum yok:
Yorum Gönder