Überprüfen Sie die Haupt Context-Klasse aus. Sie können es eine localhost (Machine) oder Domain Zusammenhang mit erstellen und die ValidateCrentials (string Benutzername, string Passwort) Methode verwenden, um unter Verwendung von Windows-Anmeldeinformationen zu authentifizieren.
http://msdn.microsoft.com/en-us/library/bb154889.aspx
Hier ist, wie ich es in meiner Website verwendet haben. (Setzen Sie dies in eine POST-Methode Ihres Authentifizierungs-Controllers oder etwas)
Der folgende Code wird einen Benutzernamen sagen "Bob" oder "localhost \ Bob" oder "DOMAIN \ Bob" etc., und erhalten Sie den richtigen PrincipalContext für Authentifizieren des Benutzers. HINWEIS: Hier wird nicht zwischen Groß- und Kleinschreibung unterschieden.
public bool ValidateCredentials(string username, System.Security.SecureString password)
{
string domain = Environment.MachineName;
if (username.Contains("\\"))
{
domain = username.Split('\\')[0];
username = username.Split('\\')[1];
}
if (domain.Equals("localhost", StringComparison.CurrentCultureIgnoreCase))
domain = Environment.MachineName;
if (domain.Equals(Environment.MachineName, StringComparison.CurrentCultureIgnoreCase))
using (PrincipalContext context = new PrincipalContext(ContextType.Machine))
{
return context.ValidateCredentials(username, password.ToUnsecureString());
}
else
using(PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
//return context.ValidateCredentials(domain + "\\" + username, password.ToUnsecureString());
return context.ValidateCredentials(username, password.ToUnsecureString());
}
}
ich für eine Beispiel-Website wirklich bin die Hoffnung, – stuck
lol sie haben für diese Sache haben so viele Namen, die ich bin sicher, dass es nach unten schwer zu verfolgen ist. Sie benutzten einen bestimmten Betrag pro Jahr für Websites zu laden, es zu benutzen, und es war nicht sehr erschwinglich für uns kleine Jungs. Ich frage mich, ob es jetzt mit dem Aufstieg von Facebook usw. kostenlos ist. – ps2goat