Kne*_*lis 10 c# asp.net asp.net-identity
我正在使用VS2013中新的MVC 5模板附带的ASP.NET Identity.我已配置外部登录提供商,以便人们可以使用Google,Facebook或Microsoft注册.但是,我仍然希望获得人们的电子邮件地址(例如,通知,更新等).
默认情况下,它app.UseGoogleAuthentication()
还会请求用户的电子邮件地址.对于Facebook,我创建了一个新的FacebookAuthenticationOptions
类实例,并添加了以下范围:facebook.Scope.Add("email")
.这也有效.
我在使用Microsoft帐户的人收到电子邮件时遇到问题.它MicrosoftAccountAuthenticationOptions
也有一个Scope
属性,但添加email
似乎不起作用.在文档中,我看到有一个范围,wl.emails
但它返回一组电子邮件地址,我不确定这是否email
与Facebook 等效.
有人建议如何在验证时将电子邮件地址作为索赔吗?
Chr*_*tin 17
配置Microsoft的范围.
var mo = new MicrosoftAccountAuthenticationOptions
{
Caption = "Live",
ClientId = clientId,
ClientSecret = clientSecret,
};
mo.Scope.Add("wl.basic");
mo.Scope.Add("wl.emails");
app.UseMicrosoftAccountAuthentication(mo);
Run Code Online (Sandbox Code Playgroud)抓住电子邮件声明
var identity = await AuthenticationManager.AuthenticateAsync(DefaultAuthenticationTypes.ExternalCookie);
var emailClaim = identity.Identity.FindFirst(ClaimTypes.Email);
Run Code Online (Sandbox Code Playgroud)希望这对你有所帮助.
归档时间: |
|
查看次数: |
3806 次 |
最近记录: |