0

有两个域(A 和 B)。这两个域处于信任关系。A 域中有一个 IIS Web 服务器。

在 Visual Studio 中,我创建了一个 MVC 项目,并在 Controller 中配置它以进行 Windows 身份验证。我读到这样的数据:

  • u = System.Web.HttpContext.Current.User.Identity.Name.ToLower ();

A 域中的用户叫 Alex。B 中的用户是 Ben。

如果 Alex 从他的机器上打开页面(计算机在 A 域中),那么一切正常。

  • 自动出现 A\Alex

如果 Ben 从他的计算机(计算机在 B 域中)打开该页面,则:

  • 默认情况下,它带有身份验证窗口!但如果我提供这些数据,一切正常。

    • A\Alex + 密码:OK
    • B\Ben + 密码:OK
  • 我什至尝试过:

    • 亚历克斯+密码:好的
    • Ben + 密码:不好(但是网络服务器在A域,所以没问题)
  • 如果我将 IE/Security 中的页面添加到“本地 Intranet”,则:

    • 自动来到 B\Ben

到目前为止,一切都很好并且相应地工作。我找不到下一个解决方案(并且尝试了很多东西......)

如果我们使用来自第三域的独立机器甚至是手机,那么:

  • 请求认证:

    • A\Alex + 密码:OK
    • 亚历克斯+密码:好的(这一点是我所期望的一切!)
    • B\Ben + 密码:不行(为什么?!?!?)

知道可能是什么问题吗?预先感谢您的帮助!

编辑:在控制器中是:

[Authorize]
public class HomeController : Controller
 {

网络配置:

<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<authentication mode="Windows" />
<authorization>
<allow users="*" />
<deny users="?" />
</authorization>
<identity impersonate="true" />
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
<customErrors mode="Off" />
</system.web>
4

0 回答 0