DirectoryEntry adEnt;
DirectorySearcher adSearch;
public void rtxUserAuth_OnRecvUserAuthRequest(string bstrUserName, string bstrPwd, out RTXSAPI_USERAUTH_RESULT pResult)
{
// bool BAuthType;
// BAuthType = rtxUserAuth.QueryUserAuthType(bstrUserName);
rtxUserAuth.GetSessionKey(bstrUserName);
SearchResult resCol;
try
{
adEnt = new DirectoryEntry("LDAP://10.12.0.10:389/OU=domain", bstrUserName, bstrPwd, AuthenticationTypes.None);
adSearch = new DirectorySearcher(adEnt);
adSearch.Filter = "(objectClass=user)";
resCol = adSearch.FindOne();
pResult = RTXSAPI_USERAUTH_RESULT.RTXSAPI_USERAUTH_RESULT_OK;
Log("service_auth", "认证成功!用户:" + bstrUserName);
}
catch (Exception ex)
{
pResult = RTXSAPI_USERAUTH_RESULT.RTXSAPI_USERAUTH_RESULT_ERRPWD;
}
}
C#认证LDAP,创建DirectoryEntry时需要传递用户名和密码,此时应该将需要认证的数据传过去,然后在search的时候就如果抛异常,则认证失败,否则认证成功。