0

我的 ASP.NET MVC2 应用程序使用 Windows 身份验证,使用 LDAP 服务器及其从活动目录中对用户进行身份验证。用户名的标准格式类似于 ABCD\UserID,但是当我将代码从 TFS 服务器下载到本地时,我的本地系统使用类似 INDIA\userid 的帐户。现在我面临的问题是,当我在本地运行代码时,由于 Windows 身份验证,它采用用户 INDIA\userid ,该用户没有应用程序的特权(因为用户 id 在 Active Directory 中不可用)和我无法调试代码,因为它一次又一次地让我请求访问页面。有没有办法绕过这个。我尝试了以下方法,但没有人奏效:

  1. 尝试将身份验证模式从 Windows 更改为 Forms。

  2. 尝试创建虚拟目录并将应用程序托管在本地计算机上。

  3. 尝试更改以下内容:

<add key="LDAPServer" value="ABCD"/>

<add key="LDAPServer" value="INDIA"/>

  1. 尝试绕过 Active Directory 身份验证。

  2. 尝试在 Active Directory 身份验证页面中对用户 ID 和密码进行硬编码:

DirectoryEntry root = new DirectoryEntry("LDAP://" + _server,"UserID","Password",AuthenticationTypes.None);

  1. 尝试通过在 HomeController.cs 页面中硬编码来传递我的用户 ID (ABCD\UserID):

ViewData["UserName"] = "ABCD\UserId";//User.Identity.Name;

我被卡住了,无法调试我的代码。在这方面的任何帮助都将是非常可观的。

谢谢穆克什

4

1 回答 1

0

通过在 BaseController 页面和调用 User.Identity.Name 的所有其他页面中传递您的用户 ID,可以解决此问题。

例如只需将 User.Identity.Name 替换为“UserId”;

这使代码通过 Windows 活动目录身份验证。

于 2013-09-12T11:08:38.797 回答