【发布时间】:2014-11-19 01:01:12
【问题描述】:
我们正在尝试使用 Thred.CurrentPrincipal 来获取用户信息。但是,一旦我们将其部署到 Azure,CurrentPrincipal 就会为空。
var td = new TokenData();
var claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;
if (claimsPrincipal != null)
{
td.IsAuthenticated = claimsPrincipal.Identity.IsAuthenticated;
td.Name = claimsPrincipal.FindFirst(ClaimTypes.Name).Value;
td.Email = claimsPrincipal.FindFirst(ClaimTypes.Upn).Value;
td.Surname = claimsPrincipal.FindFirst(ClaimTypes.Surname).Value;
td.Role = claimsPrincipal.FindAll("http://schemas.xmlsoap.org/claims/Group")
.Select(s=>s.Value);
}
我确认 ADFS 设置正确。如果有人能指出我的痛点,那就太好了。
编辑:
CurrentPrincipal 不是 NULL,但细节是。所以我们没有得到用户的姓名、角色和其他详细信息。
编辑 2:
这就是 Azure 上正在发生的事情:
【问题讨论】:
标签: c# asp.net-mvc azure azure-web-app-service adfs