asp.NetはDirectory Entryを利用してユーザーと起動パスワードを検証する
2919 ワード
コードはネット上のその他を参考にします
ネームスペース:System.DirectoryServices
.NET Framework
4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6 4.5.2 4.5.1 4.5 4.0 3.5 3.0 2.0 1.1
一:ユーザー名、パスワードなどの入力情報を照合する
二:ディレクトリの下のすべての情報を取得する
ネームスペース:System.DirectoryServices
.NET Framework
4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6 4.5.2 4.5.1 4.5 4.0 3.5 3.0 2.0 1.1
一:ユーザー名、パスワードなどの入力情報を照合する
public static string Verify_PowerOnPwd(string userId, string userPwd)
{
string retmsg = "success";
string strADPath = "LDAP://10.133.2.202";// XXXX.com 133.134.0.1
try
{
DirectoryEntry entry = new DirectoryEntry(strADPath, userId, userPwd);
DirectorySearcher search = new DirectorySearcher(entry); // DirectoryEntry
search.Filter = "(SAMAccountName=" + userId + ")"; // =user
SearchResult result = search.FindOne(); //
if (null == result) //
{
retmsg = "cancel";
}
}
catch (DirectoryServicesCOMException ex)
{
if (ex.ErrorCode == -2147023570)
{
retmsg = ex.Message.ToString();// " / ";
}
//throw ex;
}
return retmsg;
}
二:ディレクトリの下のすべての情報を取得する
StringBuilder sb = new StringBuilder();
try { DirectoryEntry entry = new DirectoryEntry(string.Format("LDAP://{0}/OU={1},DC={2},DC={3}", domain, root, domain.Split('.')[0], domain.Split('.')[1]), domain + @"\" + user, pwd);
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(objectClass=organizationalUnit)"); // entry
sb.Append("[{id:'0',pid:null,text:'" + root + "',expand:true}");
int i = 1;
foreach (SearchResult resEnt in mySearcher.FindAll()) //
{
string _a = resEnt.GetDirectoryEntry().Name.Split('=')[1];
if (_a != root) { sb.Append(",{id:'" + i.ToString() + "',pid:'0',text:'" + _a + "'}");
DirectorySearcher m1 = new DirectorySearcher(resEnt.GetDirectoryEntry()); //
m1.Filter = ("(objectClass=user)"); //
foreach (SearchResult r1 in m1.FindAll()) //
{ sb.Append(",{ id:'" + r1.GetDirectoryEntry().Properties["sAMAccountName"][0].ToString() + "',pid:'" + i.ToString() + "',text:'" + r1.GetDirectoryEntry().Properties["Name"][0].ToString() + "'}");
} i++;
}
}
sb.Append("]");
}catch(Exception)
{}