我所擁有的功能是允許域用戶對其LDAP憑證進行身份驗證。然而,當我將一個已知的密碼硬編碼爲一個原始字符串時,它的工作很長......當然,這是一個不行的密碼。我希望傳入從我設置的TextBox
收到的字符串值。下面是函數:將字符串變量傳入用於口令爭用的Nework證書構造函數
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'替換''Password123'',並將其稱爲'fnValLDAPCreds(myTextBox.Text)'?或者你的問題不是很清楚 –
我很難看到更大的圖片。你是否這樣做,以確保登錄爲'bob'的用戶實際上是bob,通過讓他重新輸入他的密碼?或者你是否在其他地方用它作爲證據來完成證書? – Kevin