获取登录用户O365/webforms的电子邮件地址

Jam*_*ish 6 c# webforms office365

我有一个具有O365身份验证的webforms网站,我在构建项目时使用可视工作室内置选项添加了身份验证.

VS认证

这很好用,但我想做的是,它获取用户登录的电子邮件地址,并根据登录的人显示不同的链接集或不同的页面.

我该怎么做呢?

小智 0

如果底层 ADFS 未通过电子邮件声明,您将无法看到电子邮件的详细信息。首先,如果您能够登录,我建议您打印出您收到的索赔。有关读取所有声明的一种实现方式,请参阅以下链接:

在 MVC 5 中访问控制器中的声明值

如果电子邮件声明不存在,则您需要请求 ADFS 管理员通过电子邮件声明。以下是有关如何通过电子邮件索赔的参考链接: https: //learn.microsoft.com/en-us/azure/architecture/multitenant-identity/adfs

如果存在电子邮件声明,则声明类型为电子邮件 ( http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress )。如果是,那么您应该能够使用 ClaimTypes.Email 属性。但如果不是这样,最简单的方法是要求 ADFS 管理员将声明类型转换为电子邮件地址声明类型。更困难的方法是使用 ClaimTransformationManager ( https://learn.microsoft.com/en-us/dotnet/framework/security/how-to-transform-incoming-claims )。

我希望你觉得这有帮助。

干杯,乌芒