私が持っているのは、ドメインユーザーがLDAP資格情報に対して認証されることを可能にする機能です。しかし、それは生の文字列として知られているパスワードをハードコードしている限り長く働いています...もちろんノー・ノーです。私はTextBox
から受け取った文字列値を渡したいと思います。ここでは関数は次のとおりです。私がしようとした何文字列変数をニュルンクリデンシャルに渡すパスワードアークのためのコンストラクタ
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;
}
は私のTextBox
からの値で代用したが、それは私がコントロールに任意の外部参照を行うことで成功していないstatic bool
にあるので、現在のコンテキスト。私はそれを消すためにボタンハンドラでこの関数を呼び出しています。 string DomPassWord
変数を取得するために設定したテキストボックスからその値を取得する変数はどうやって交換できますか?
NetworkCredential NetCred = new NetworkCredential(Environment.UserName, DomPassWord, Environment.UserDomainName);
ドメイン内のパスワードをハードコードなしで安全に一致させるために、DomPassWord = txtUserPW.Text
などを使用しています。 SecureString
ルートを試しましたが、その点でも失敗しました。何か案は?
fnValLDAPCredsメソッドに 'string password'引数を追加し、' 'Password'''を' password'で置き換えて 'fnValLDAPCreds(myTextBox.Text)'のように呼び出すのはなぜですか?またはあなたの質問があまり明確でない –
大きな画像を視覚化するのに問題があります。 'bob'としてログインしているユーザーがパスワードを再入力させることで実際にボブになっていることを確認するには、これをしていますか?あるいは、資格証明を完成させるためにそれを他の場所で議論として使用していますか? – Kevin