İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Yönetici Girişini Kontrol Etmek C#

CeSaRCripS

0
İyinet Üyesi
Katılım
27 Ağustos 2013
Mesajlar
24
Reaction score
0
Konum
Hatay/İskenderun
Bugünkü makalemizde hazırladığımız programın yönetici olarak çalıştırılıp çalıştırılmadığını nasıl test ederiz onu anlatacağım.

Bilindiği üzere Windows her gün kendine yeni özellikler katmaktadır. Windows 8 ile birlikte gelen sistemlerde kullanıcı hesapları her program için yetki düzeyini sağlayamaz hale geldi.

Hazırlanan programlarda buna dikkat ederek kontrolü sağlamak için program açılışında Yönetici Olarak Çalıştırmaya dikkat ediyor.

Peki bu fonksiyon nasıl kullanılıyor ? Nasıl yönetici olarak çalıştırılıyor. Cevabı: System.Security.Principal.

Hep beraber inceleyelim.

Öncelikle program içerisinde kullanılacak Principal kodları için kütüphanemize using System.Security.Principal; kodunu ekliyoruz.

bool geri dönüşlü, Adminmi isminde bir fonksiyon oluşturup; programın istenilen yerinde bu fonksiyonu çağırabilelim.

Kod:
public static bool Adminmi()
{

WindowsIdentity Kimlik = WindowsIdentity.GetCurrent();
WindowsPrincipal Esas = new WindowsPrincipal(Kimlik);
return Esas.IsInRole(WindowsBuiltInRole.Administrator);

}

İlk adımda WindowsIdentity değişken tipinde Kimlik isminde bir değişken oluşturup WindowsIdentity sınıfının GetCurrent() metoduntan dönen değeri Kimlik değişkenine atıyoruz.

WindowsPrincipal sınıfından önceki adımda oluşturduğumuz Kimlik değişkenini esas alıp Esas ismindeki değişkene atıyoruz.

Artık Esas değişkeni içerisinde tüm yönetici rolleri hazırlanmış haldedir.

Son işlem olarak açılan sistemin/programın hangi kullanıcı tarafından açıldığını seçip programın istenilen yerinde bu fonksiyonu:

Kod:
bool Admin = Adminmi();

şeklinde kullanabiliriz.

bool Admin değişkeni eğer True olarak döner ise program Yönetici (Administrator) olarak çalıştırılmış, eğer False döner ise program normal kullanıcı tarafından çalıştırılmış olacaktır.

Saygılarımla,
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst