我在我的C#web應用程序中使用DirectoryEntry方法設置LDAP登錄。下面的代碼是我到目前爲止。這將讓任何擁有AD帳戶的人登錄。我需要將其限制在名爲「commonusers」的組中。檢查用戶登錄對AD組
public Boolean ValidateUser(string userName, string password)
{
string path = "LDAP://domain.company.org";
DirectoryEntry dirEntry = new DirectoryEntry(path, userName, password, AuthenticationTypes.Secure);
try
{
DirectorySearcher dirSearcher = new DirectorySearcher(dirEntry);
dirSearcher.FindOne();
return true;
// If it returns the data then the User is validated otherwise it will automatically shift to catch block and return false
}
catch
{
return false;
}
登錄按鈕使用下面的代碼:
protected void Button1_Click(object sender, EventArgs e)
{
{
Boolean boolresult = ValidateUser(TextBox_username.Text, TextBox_password.Text);
if (boolresult)
{
Label_loginstatus.Text = "Redirecting";
Response.Redirect("medsearch.aspx");
}
else
{
Label_loginstatus.Text = "Invalid username/password! Please try again.";
}
}
}
是否有可能增加一個檢查功能的用戶佔了「commonusers」組到這些功能呢?
有沒有需要添加的參考去這條路線?我添加了這個代碼,並且PrincipalContext,ContextType,PrincipalSearcher,UserPrincipal和Principal都出現了錯誤。 –
System.DirectoryServices.AccountManagement - 睡前閱讀這裏:http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement(v = vs.110).aspx – Steen
因此,此代碼工作篩選出用戶不在組中,但它允許指定組中的用戶無需密碼登錄... –