wymuszenie admina po uruchomieniu programu

0

Witam
Mam mały programik , który by zapisać zmiany wymaga praw admina (jest to plik w miejscu, w którym niezbędne jest posiadanie admina)
Poniżej kawałek kodu

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Security.Principal;
using System.Security.Permissions;
..
..
private void button2_Click(object sender, EventArgs e)
        {
            //prawa admina
            //jeszcze nie działa ale coś ala to poniżej
            //PrincipalPermissions(SecurityAction.Demand, AccessibleRole = @"BUILTIN\Administrators");
            //ver lepsza ale nie działa :(
            AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
            PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
            principalPerm.Demand();
            
            
            //zerowanie pliku
            FileStream fs = File.Open(@"c:\Windows\System32\Drivers\etc\hosts", FileMode.Create);

            StreamWriter sw = new StreamWriter(fs);

            
            sw.WriteLine("127.0.0.1 localhost");

            sw.Close();
            fs.Close();
            //ipconfig /flushdns
            System.Diagnostics.Process.Start("ipconfig", "/flushdns");
        }
 

Jak poprawić to by po naciśnięciu poproszony user został o prawa admina by zaakceptował ?

1

Uruchom nowy proces z odpowiednim manifestem, który zrobi to co chcesz i zwróci ci wynik.

1

Z tego co mi wiadomo, w Windows nie da się zmienić uprawnień kiedy program już działa. Odpowiedni manifest doklejony do pliku wykonywalnego wywoła pytanie UAC w momencie uruchamiania programu.

0

pewnie tak, a mam prośbę by ktoś opisał mi to jak laikowi :) bo znalazłem się w lesie teraz

ps. dodałem ten manifest i dałem tam na uprawnienia najwyższe jakie można. Zobaczymy co z tego wyjdzie

No i działa tak jak powinno po dodaniu tego manifestu.
Dzięki

0

Tylko że teraz program się pewnie nie uruchomi na koncie zwykłego użytkownika...
Microsoft zaleca, żeby pytanie o uprawnienia maksymalnie opóźnić do momentu gdy faktycznie są potrzebne, a można to zrobić tylko odpalając osobnego exeka — i liczyć się z tym, że podniesione uprawnienia nie zawsze są dostępne.
No chyba że cały program nie ma sensu bez admina.

0

W moim przypadku najlepsze jest rozwiązanie posiadania admina,bez program prawie że w ogóle nie ma sensu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1