Avatar billede coden Nybegynder
14. august 2013 - 11:41

Impersonation virker ikke - hvorfor???

Hej

Jeg har et problem som jeg håber I kan hjælpe mig med. Jeg er ved at forsøge, at lave et lille tool der kan hjælpe mig og mine kolleger i det daglige når der skal startes og stoppes services på nogle servere.

Jeg bruger følgende klasse til opbevaring af information om den enkelte service:
[Serializable]
public class ManagedService : Notifier
{
    private Guid id = Guid.Empty;
    private string friendlyName; //Udelukkende til informativt brug
    private string description; //Udelukkende tilinformativt brug
    private string serverName;  //maskinen hvorpå servicen befinder sig
    private string serviceName; //Navnet på den service som det drejer sig om
    private string domain;      //Domænet som brugeren er medlem af, hvis domænebruger
    private string runAsUser;  //Det brugernavn der skal impersonates
    private string userPassword; //det password der skal bruges ved impersonation
    private bool localUser;      //true hvis der er tale om en lokal bruger
    private int timeOut;        //Ventetid ifm. Handlingen på servicen.
}

Alt selvfølgelig er encapsulated.

Jeg bruger en serviceController til at få information om og udføre handlinger på den pågældende service. Servicecontrrolleren initierer jeg således:

ServiceController service = new ServiceController(ManagedService.ServiceName, ManagedService.ServerName);
... //Den handling jeg ønsker at foretage.

Ovenstående kode har jeg forsøgt at anvende sammen med forskellige kodestumper jeg har fundet rundt på nettet der alle postulerer at virke som impersonation. Det er ligegyldigt om ovenstående kode er indlejret i et using statement i stil med dette:

using (new Impersonator(user, domain, password))
{
... //ovenstående kode
}

Eller om jeg på anden vis får en Impersonator kørende før jeg kalder koden "underlagt" denne Impersonatorkontekst.

Ligegyldigt hvad jeg gør, så kan jeg ikke få nogen af de kodestumper til at virke som jeg har fundet.
Mine spørgsmål er nu følgende:
1.
Kan jeg fra maskine A, ved brug af en domainuser med admin rettigheder, få adgang til at starte, stoppe osv. Service B på server C, og i givet fald hvordan - meget gerne i form af kodeeksempel/henvisning?
2.
Kan jeg fra maskine A, ved brug af en lokal bruger på server D som har admin rettigheder, få adgang til at starte, stoppe osv. Service E på server D, og i givet fald hvordan - meget gerne i form af kodeeksempel/henvisning?
3.
Eller virker impersonation kun på den maskine hvor min kode afvikles, dvs. på maskine A?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester