Im Obecnie pracuję nad ApplicationLauncher/Autoupdater. Aby zainstalować/zaktualizować aplikację do "Program Files", muszę poprosić o uprawnienia Administratora.Uprawnienia administratora dla pojedynczej metody
Cóż, ponieważ Aktualizator musi tylko napisać coś, jeśli zostaną znalezione nowe Wersje, spróbowałem uzyskać tylko żądanie przywilejów, jeśli zostanie znaleziona nowa.
Updater jest wykonywana za każdym razem, zanim zostanie wprowadzona aplikacji, więc pytanie „za każdym razem” dla Adminrights ma rozwiązania ...
Szukałem dużo, i stwierdził, co następuje:
[PrincipalPermission(SecurityAction.Demand, Role = @"Administrators")]
private void InstallOrUpdate(AppItem appItem)
ale WENN próbuję tego, aktualizator rzuca wyjątek SecurityException ...
Prośba o pozwolenie główne nie powiodła się.
Co robię źle?
Najlepsze chodzi, Dognose
Podczas wykonywania czynności administracyjnych w systemie Windows widzę przyciski w formularzach z ikoną administracyjną obok nich. Kiedy klikam przycisk, UAC prosi o podniesienie uprawnień. Czy mówisz, że dla każdego przycisku administracyjnego Windows uruchamia nowy proces? A może dzieje się coś innego? – Phil
@Phil: Tak. Zasadniczo, jeśli widzisz monit UAC, wiesz, że nowy proces zacznie się w tym momencie. –
@Phil, dobrym przykładem jest Menedżer zadań Windows i przycisk "Pokaż procesy od wszystkich użytkowników". Kliknięcie tego nie tylko aktualizuje Menedżera zadań, uruchamia go z podwyższonymi uprawnieniami. –