Fly*_*wat 6 asp.net credentials active-directory
我使用控制台应用程序编写一些测试代码:
/// <summary>
/// Returns AD information for a specified userID.
/// </summary>
/// <param name="ntID"></param>
/// <returns></returns>
public ADUser GetUser(string ntID)
{
DirectorySearcher search = new DirectorySearcher();
search.Filter = String.Format("(cn={0})", ntID);
search.PropertiesToLoad.Add("mail");
search.PropertiesToLoad.Add("givenName");
search.PropertiesToLoad.Add("sn");
search.PropertiesToLoad.Add("displayName");
search.PropertiesToLoad.Add("userPrincipalName");
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
return new ADUser(result);
}
Run Code Online (Sandbox Code Playgroud)
这在控制台应用程序中运行良好.但是,当我将其移动到ASP.NET应用程序时,我收到一条错误消息,指出不知道正确的域.
在ASPNET帐户上运行时,是否存在访问AD的技巧?
编辑:只传递LDAP://域连接字符串是不够的,因为它需要一个实际的登录/密码.因为它运行在计算机上的本地帐户上,所以我不确定要使用哪个AD L/P. 我可以以某种方式将访问用户帐户委托给它吗?
编辑#2:当尝试使用身份模拟时,我得到一个DirectoryServicesCOMException:
是的。您需要给它一个目录连接字符串。控制台应用程序(与您一起运行)使用您的凭据运行,包括目录访问权限。ASP.NET 应用程序使用 ASPNET 用户凭据运行,这些凭据是应用程序运行所在系统的本地凭据,而不是目录全局凭据。
| 归档时间: |
|
| 查看次数: |
7440 次 |
| 最近记录: |