我有一个使用Oauth的MVC5应用程序并正在正确登录,但是我想将返回的电子邮件保存到数据库中,并且在执行此操作时遇到了麻烦。
我在startup.auth.cs中有以下代码:
以下代码添加了声明,我可以在调试器中声明电子邮件声明,但是如果是用户首次登录,则此时用户实际上并未创建,因此我无法在此更新用户。 / p>
LinkedInAuthenticationOptions x = new LinkedInAuthenticationOptions();
x.ClientId = "key";
x.ClientSecret = "key";
x.Scope.Add("r_emailaddress");
x.Provider = new LinkedInAuthenticationProvider()
{
OnAuthenticated = async context =>
{
//Get the access token
context.Identity.AddClaim(
new System.Security.Claims.Claim("Email", context.Email));
}
};
app.UseLinkedInAuthentication(x);
在下面的代码中(在默认项目accountcontroller.cs中)我尝试访问上面添加的电子邮件声明,但是它无法找到声明...
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
ClaimsIdentity identity = UserManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
}
有人知道如何访问我在startup.auth.cs中添加的电子邮件声明吗?
答案 0 :(得分:2)
您想要执行类似于此博文的操作,只需存储电子邮件声明而不是Facebook访问令牌。