【发布时间】:2013-12-09 17:15:56
【问题描述】:
我有一个针对 Active Directory 进行 Windows 身份验证的应用程序 (MVC4)。 用户登录后(通过浏览器登录对话框),他会获取包含他的数据的页面,他可以在其中更新它,例如电子邮件地址。
用户单击保存按钮后,他收到“访问被拒绝”错误,但他在 Active Directory 中具有适当的权限。
我用这样的代码保存用户数据:
using (DirectoryEntry de = new DirectoryEntry (path))
{
SetEntityPropertyValue(de, "mail", user.Email);
de.CommitChanges();
}
但是,如果我传递这个登录用户的用户名和密码,像这样:
using (DirectoryEntry de = new DirectoryEntry (path, user, password))
{
SetEntityPropertyValue(de, "mail", user.Email);
de.CommitChanges();
}
它有效。怎么了? 如果这不是自动发生的,如何从 Windows 身份验证中获取用户凭据以将其传递给 DirectoryEntry() 方法?
我之前没有写过,但是 IIS 和 AD 运行在不同的机器上。
【问题讨论】:
-
xiyal,你找到答案了吗?我正在与同样的问题作斗争。
标签: asp.net-mvc active-directory windows-authentication