首页 > 解决方案 > 在 asp.net mvc 和 web api 中为上下文用户身份返回了无效的组 SID

问题描述

我正在使用用户的身份来获取与该用户关联的所有组的 Sid,但是

在 asp.net mvc 或 web api 中调用以下内容时:

var identity = HttpContext.Current.User.Identity;

并使用以下内容获取组的 SID

var groupSids = ((ClaimsIdentity)identity)
    .Claims
    .Where(c => c.Type == ClaimTypes.GroupSid)
    .Select(c => c.Value);

它包括用户不属于的(本地)组。

我将在一秒钟内检查其他方法,但我只是不明白为什么它会从我的机器中返回本地组 SID,我特意将自己从它们中删除以测试这一点,但无济于事。

任何想法为什么?我用错了吗?

谢谢。

更新-1:

我很困惑。当我通过 Postman 调用我的 Web API 并通过 NTML 验证我的 AD 用户时,它会返回正确的数据。

当我在我的 asp.net mvc 应用程序中并调用我的 Web API 时,我可以看到“HttpContext.Current.User.Identity”设置为我的 AD 用户,但它包含不同的 SID,就像通过 Postman 调用时一样。

为什么??

标签: c#asp.net-mvcasp.net-web-apiasp.net-web-api2

解决方案


推荐阅读