Hogyan tudok C#-ban rendszergazdai jogot kérni hogy hozzáférjek ahoz a fájlokohoz amihez csak a rendszergazda férhet hozzá?
Egy manifest fájlt kell a projectedhez adnod és e szerint módosítanod:
Gyakorlatilag bele kell írnod (asInvoker helyett) hogy:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Köszi. Sikerült. És hogyan tudom ezt futás közben megvalósítani?
Csak a program bizonyos funkcióihoz van szükség rendszergazdai engedélyre ezért ha a felhasználó azokat nem használja akkor nem kell rendzsergazdai joggal már úgy indulnia.
Trükközés nélkül nem hiszem hogy lehetséges. Amikor elindítod a folyamatot, akkor kell eldönteni hogy milyen felhasználóként, milyen jogokkal induljon. Ezt futás közben már nem lehet módosítani. (hogy lehetne átemelni egy folyamatot az egyik felhasználói térből a másikba??)
Azt tudod csinálni, hogy lemented a program állapotát valamilyen módszerrel, újraindítod az alkalmazást admin jogokkal, majd visszatöltöd a program állapotát.
Nem tudom milyen okok vannak a háttérben amiért erre kényszerülnél, de ki is lehet akár kapcsolni az UAC-ot.
Azt viszont be tudod állítani, hogy ha sima felhasználóként indítja ne férjen bizonyos dolgokhoz hozzá:
static void Main(string[] args)
{
try
{
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
Adminvizsgalat();
}
catch (Exception)
{
Console.WriteLine("Nem vagy admin");
}
Console.ReadKey();
}
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
static void Adminvizsgalat()
{
Console.WriteLine("Admin vagy");
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!