Ich habe eine Funktion, die es einem Domänenbenutzer ermöglicht, mit ihren LDAP-An-Meldeinformation authentifiziert werden. Es funktioniert jedoch lange, da ich ein bekanntes Passwort als eine rohe Zeichenfolge fest codiere ... was natürlich ein Nein ist. Ich möchte einen Zeichenfolgenwert übergeben, der von einer TextBox
empfangen wurde, die ich eingerichtet habe. Hier ist die Funktion:Übergeben Zeichenfolge Variable in Nework Credential Constructor für Kennwort Argument
public static bool fnValLDAPCreds()
{
bool validation;
try
{
LdapConnection ADConn = new LdapConnection(new LdapDirectoryIdentifier((string)null, false, false));
NetworkCredential NetCred = new NetworkCredential(Environment.UserName, "Password123", Environment.UserDomainName);
ADConn.Credential = NetCred;
ADConn.AuthType = AuthType.Negotiate;
// the user's authenticated here; creds used to login on the domain controller.
ADConn.Bind(NetCred);
validation = true;
MessageBox.Show("You were successfully authenticated against AD using LDAP!");
}
catch (LdapException)
{
validation = false;
MessageBox.Show("Your login was unsuccesful. Try a different set of credentials.");
}
return validation;
}
Was ich versucht habe, von meinem TextBox
in einem Wert war Ersatz zu tun, aber da es in der static bool
liegt habe ich nicht erfolgreich mit der Herstellung keine externen Verweise auf eine Kontrolle in der aktueller Kontext. Ich rufe diese Funktion im Button-Handler auf, um sie auszulösen. Wie kann ich in eine string DomPassWord
Variable tauschen, die ihren Wert von der Textbox erhält, die ich eingerichtet habe, um sie zu erhalten?
NetworkCredential NetCred = new NetworkCredential(Environment.UserName, DomPassWord, Environment.UserDomainName);
ist, was ich anstrebe, wie ich sicher ein Kennwort in der Domäne ohne harte Kodierung, mit etwas wie DomPassWord = txtUserPW.Text
übereinstimmen kann. Versuchte die SecureString
Route, war aber in dieser Hinsicht auch nicht erfolgreich. Irgendwelche Ideen?
Warum fügen Sie der Methode fnValLDAPCreds kein 'string password' Argument hinzu, ersetzen' 'Password123' 'durch' password' und nennen es wie 'fnValLDAPCreds (myTextBox.Text)'? Oder Ihre Frage ist nicht sehr klar –
Ich habe Probleme, das größere Bild zu visualisieren. Machst du das, um sicherzustellen, dass der Benutzer, der als "Bob" angemeldet ist, tatsächlich Bob ist, indem er ihn dazu bringt, sein Passwort erneut einzugeben? Oder verwenden Sie es als Argument anderswo, um eine Berechtigung zu vervollständigen? – Kevin