SORU
7 Ocak 2010, PERŞEMBE


Tek bir yöntem için yönetici hakları

Tek bir yöntem için yönetici hakları gerektirir mümkün mü?

Şöyle bir şey:

[RequireAdminRightsForThisMethod()]

private void TheMethod(){

    // Do something

}

CEVAP
7 Ocak 2010, PERŞEMBE


Senin yöntemi PrincipalPermission bir öznitelik yürütülmesi için yönetici ayrıcalıkları talebi için ekleyebilirsiniz:

[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
public void MyMethod()
{
}

Bu aşağıdaki makalede daha ayrıntılı olarak açıklanmıştır:

Security Principles and Local Admin Rights in C# .Net

Eğer sen are seyir için bir şekilde yükseltmek mevcut süreci şüpheliyim bu sürede yönetici yetkileri üzerinde verilmiş süreci seviyeli bir süreç başlatma (bkz: bu ilgili question). Bu uygulamayı çalıştırmak için "yönetici" istenen davranışı almak için. gibi olurdu

Ancak, siz ne isterseniz yapın, ama bu ciddi güvenlik riskleri açabileceğini uyarılmak için izin verebilir bazı püf noktaları vardır. TechNet forumları: aşağıdaki konuyu bakın

Launching MyElevatedCom Server without prompting Administrator credentialls from Standard User

Güncelleme (yorum)

Eğer bir güncelleme yükselmesi gerekir Eğer uygulama güncelleme en iyi ayrı bir işlem (ya da başka bir yürütülebilir ya da uygulama bir komut satırı anahtarı olarak adlandırılır) ile yapılır. O ayrı işlem için aşağıdaki gibi ayrıcalık talep edebilirsiniz

var psi = new ProcessStartInfo();
psi.FileName = "path to update.exe";
psi.Arguments = "arguments for update.exe";
psi.Verb = "runas";

var process = new Process();
process.StartInfo = psi;
process.Start();   
process.WaitForExit();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Mr. H

    Mr. H

    1 Temmuz 2012
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011