0
我跟着this教程來獲得我的真實賬戶oauth在我的asp mvc 5和web api 2應用程序上工作。ASP MVC 5 Web Api 2通過電子郵件通過
一切順利,並有額外的範圍,我可以獲取用戶的電子郵件。但是,我怎樣才能通過它回到網頁。
一些代碼:
在Startup.Auth.cs
Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions microsoftAccountOptions = new Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions(){
ClientId = microsoftClientId,
ClientSecret = microsoftClientSecret
};
microsoftAccountOptions.Scope.Add("wl.basic");
microsoftAccountOptions.Scope.Add("wl.emails");
microsoftAccountOptions.Provider = new Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider()
{
OnAuthenticated = async context =>
{
context.Identity.AddClaim(new System.Security.Claims.Claim("urn:microsoftaccount:access_token", context.AccessToken));
context.Identity.AddClaim(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Email, context.User["emails"].Value<string>("account")));
}
};
app.UseMicrosoftAccountAuthentication(microsoftAccountOptions);
所以在OnAuthenticate再打我可以電子郵件添加到索賠。 這一切都很順利,但是當我嘗試在我的MVC控制器(重定向url)中訪問它時,所有的聲明都消失了。我正在使用Web Api和MVC,所以這些聲明已經消失並不奇怪。由於AccountController是一個ApiController,並且重定向到HomeController很可能是一個不同的請求。
public ActionResult Index()
{
var claims = HttpContext.GetOwinContext().Authentication.User.Claims;
ViewBag.Title = "Home Page";
return View(claims);
}
如何通過電子郵件索賠?