bruger windows brugernavn adgangskode i c #

Indlæg af Hanne Mølgaard Plasc

Problem



hvordan jeg kan bruge Windows gemt brugernavn og adgangskode i min C # APP. Jeg leder efter metode, der returnerer bool state of succesfulde login. midler :


bool isCredentialValid = CheckLogin(username, password);


så ifølge bool værdi kan jeg vise korrekt besked.


Opdateret


class Program
{
    static void Main(string[] args)
    {
        PrincipalContext pc = new PrincipalContext(ContextType.Machine);
        Console.WriteLine("Enter username : ");
        string user = Console.ReadLine();

        Console.WriteLine("Enter password : ");
        string pass = Console.ReadLine();

        bool isValid = pc.ValidateCredentials(user, pass);

        Console.WriteLine("State : {0}",isValid);

        Console.ReadLine();
    }
}


denne kode virker ikke. Når jeg aktiverer Gæstekonto , vises den for alle login, og når jeg deaktiverer Gæstekonto , bekræfter den ikke den eksisterende konto. Enhver hjælp ville blive værdsat.

Bedste reference


Se på PrincipalContext.ValidateCredentials metode. For eksempel [6]


PrincipalContext pc = new PrincipalContext(ContextType.Domain);
bool isCredentialValid = pc.ValidateCredentials(username, password);


For lokale konti, brug ContextType.Machine.


Endnu en anden måde ville bruge win32 api LogonUser-funktionen [7]

Andre referencer 1


Tilføj using System.Security.Principal;


//for current Username full
 string str = WindowsIdentity.GetCurrent().Name;


Derefter kan du bruge dette brugernavn til godkendelse.
For adgangskode er det anderledes.