System.Security.Principal | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar System.Security.Principal

C# Uygulamanın Yönetici (Administrator) hesabı ile çalıştığını kontrol etmek

16 August 2011 1 yorum

Eğer uygulama içerisinde Yönetici (Administrator) hesabının yetkisi ile yapılabilecek görevlerimiz varsa, öncelikle bu haklara sahip olduğumuza emin olmamız gerekir.

Günümüzde birçok uygulama Yönetici (Administrator) haklarına ihtiyaç duyar. Bu makalede bu haklara sahip olduğumuzu nasıl kontrol edeceğimizi işleyeceğiz.

Öncelikle kodumuzun using kısmına System.Security.Principal namespace‘ini eklememiz gerekiyor;

using System.Security.Principal;

Daha sonra IsAdministrator() isminde bir fonksiyon yazıyoruz;

public static bool IsAdministrator()
{
	WindowsIdentity identity = WindowsIdentity.GetCurrent();

	WindowsPrincipal principal = new WindowsPrincipal(identity);

	return principal.IsInRole(WindowsBuiltInRole.Administrator);
}

Bu fonksiyon sayesinde Yönetici (Administrator) haklarına sahip olup/olmadığımızı anlayabiliyoruz.

Fonksiyon içerisinde öncelikle WindowsIdentity sınıfından bir değişkene WindowsIdentity sınıfının static GetCurrent() methodundan dönen değeri atıyoruz.

İkinci adımda ise, bu değişkeni kullanarak WindowsPrincipal sınıfından yeni bir değişken oluşturuyoruz.

Son adımda, bu değişkenin IsInRole fonksiyonuna WindowsBuiltInRole enum’ından Administrator değerini parametre olarak geçiyoruz ve sonucu fonksiyondan geriye boolean değer olarak döndürüyoruz.

Uygulama içerisinde her ihtiyacımız olduğunda yukarıdaki fonksiyonu çağırarak Yönetici (Administrator) haklarına sahip olduğumuzu kontrol edebiliriz;

bool AdminRole = Program.IsAdministrator();