问题描述
在浏览了许多演示和示例后,我有了一个工作演示。 我有一个 mvc 站点,它使用 azure b2c 进行身份验证并使我登录 - 我可以注销。 User.Identity 已填充 - 我可以使用“电子邮件”声明来获取用户的电子邮件。
我只想从用户那里收集电子邮件地址 - 没有其他详细信息,例如用户名或他们的姓名等。
目前 User.Identity.Name 为空 - 因为我在注册时不会从用户那里收集这些信息。 我想将 NameClaimType 更改为 - 我猜应该是“电子邮件”,因为这是包含电子邮件值的声明的名称。
基本上我想返回 User.Identity.Name 中的电子邮件。
我找不到这样做的方法。
Startup.cs 有以下内容
services.AddMicrosoftIdentityWebAppAuthentication(Configuration,"AzureAdB2C");
services.Configure<OpenIdConnectOptions>(Configuration.GetSection("AzureAdB2C"));
我试过这样做..
services.Configure<OpenIdConnectOptions>(options =>
{
options.TokenValidationParameters.NameClaimType = "emails";
});
但这似乎没有任何影响。
如果我检查 User.Identity - 我可以看到 NameClaimType 的值仍然是“name”
这段代码似乎很新,我找不到有关如何为 .net 3.1 自定义此代码的任何文档
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)