【发布时间】:2021-01-11 23:26:27
【问题描述】:
我有一个 .NET Framework 4.7.2 MVC 5 站点,它使用 Windows 身份验证来授权访问基于 AD 组成员身份的操作。这适用于单个域,但我们有域信任,并且 ASP 似乎无法解析来自其他域的成员资格。
例如
两个域:Parent 和 Leaf
该站点在具有本地安全组设置的父域中运行:SiteAccess-L。
SiteAccess-L 包含一个成员 Leaf\SiteAccess-G,而该成员又拥有我们的用户 Leaf\User。
当我转储HttpContext.User.Identity.Groups 的内容(通过WindowsIdentity 进行转换)时,我可以看到用户所属的所有叶域组,但看不到任何父域组。这只发生在远程用户身上,如果我在本地访问该站点,它似乎可以工作。
使用相同的用户帐户在 Web 服务器的桌面上运行一个简单的 C# 应用程序并调用 WindowsIdentity.GetCurrent() 将使我恢复域组成员身份。
有谁知道这里给出了什么,以及我如何访问 MVC 中的完整跨域组成员资格?如果我在 MVC 中使用 GetCurrent(),我会得到运行应用程序池的服务帐户。
谢谢。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-5 windows-identity