6 Haziran 2016 Pazartesi

Kimlik ve Gruplar

Impersonation
Şö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.
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. GenericPrincipal
Constructor
Şö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.

SecurityIdentifier sınıfı
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