不知道有没做过以服务方式的AD用户验证try
{
DirectoryEntry myEntry=new DirectoryEntry( "LDAP://" + domain,this.userName ,this.passWord, AuthenticationTypes.Secure ); //创建AD登录实例 DirectorySearcher myResearch=new DirectorySearcher(myEntry); //创建AD搜索实例 myResearch.ClientTimeout = TimeSpan.FromSeconds(30);
myResearch.Filter="(SAMAccountName=" + this.userName + ")"; //设置AD搜索条件
SearchResult myResult = myResearch.FindOne(); //搜索AD中一个符合条件的结果 //获取当前AD路径
this.adUserPath = myResult.Path;
if (myResult==null) //当搜索无结果时,返回错误信息,否则返回用户名
{
return "用户不存在或密码错误";
}
else
{
return userName;
} }
catch (Exception e) //当搜索异常时,返回错误信息
{
return(e.Message);
}以form形式存在,程序能正常连接AD并且返回结果.如果做成服务,连接就失败.提示:
System.Runtime.InteropServices.COMException (0x8007202A): 未知的身份验证机制。请问有何办法解决.服务的安装属性ServiceAccount为LocalSystem,其他的试过也不行。
在网上寻找的类和资料均不能解决在服务方式下成功连接。请问有哪位做过类似项目或
有经验者来帮忙解决下。
{
DirectoryEntry myEntry=new DirectoryEntry( "LDAP://" + domain,this.userName ,this.passWord, AuthenticationTypes.Secure ); //创建AD登录实例 DirectorySearcher myResearch=new DirectorySearcher(myEntry); //创建AD搜索实例 myResearch.ClientTimeout = TimeSpan.FromSeconds(30);
myResearch.Filter="(SAMAccountName=" + this.userName + ")"; //设置AD搜索条件
SearchResult myResult = myResearch.FindOne(); //搜索AD中一个符合条件的结果 //获取当前AD路径
this.adUserPath = myResult.Path;
if (myResult==null) //当搜索无结果时,返回错误信息,否则返回用户名
{
return "用户不存在或密码错误";
}
else
{
return userName;
} }
catch (Exception e) //当搜索异常时,返回错误信息
{
return(e.Message);
}以form形式存在,程序能正常连接AD并且返回结果.如果做成服务,连接就失败.提示:
System.Runtime.InteropServices.COMException (0x8007202A): 未知的身份验证机制。请问有何办法解决.服务的安装属性ServiceAccount为LocalSystem,其他的试过也不行。
在网上寻找的类和资料均不能解决在服务方式下成功连接。请问有哪位做过类似项目或
有经验者来帮忙解决下。
不在代码处做处理,而是在服务的登陆权限那里设置管理者的权限。不能使用本地系统帐户。