我创建了一个MVC Web应用程序并尝试使用Microsoft帐户身份验证。
在我的StartupAuth.cs中,我已使用此代码段配置了Microsoft身份验证:
var microsoftOptions = new MicrosoftAccountAuthenticationOptions()
{
ClientId = Config.MSAppId,
ClientSecret = Config.MSAppSecret,
};
app.UseMicrosoftAccountAuthentication(microsoftOptions);
可以使用我的Windows帐户
在帐户控制器中,我尝试根据身份验证提供程序返回的数据创建帐户。下面的代码段只显示了重要部分。
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
var userName = string.Empty;
var eMail = string.Empty;
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Index", "Home");
}
// Benutzer mit diesem externen Anmeldeanbieter anmelden, wenn der Benutzer bereits eine Anmeldung besitzt
var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
...
等待AuthenticationManager.GetExternalLoginInfoAsync()始终返回null。
开发人员门户中的配置如下所示:
我曾尝试为电子邮件和基本信息添加范围,但这似乎已被弃用,身份验证页面显示错误。
在Visual Studio的调试控制台中,我收到以下错误:
Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationMiddleware错误:0:身份验证失败 System.Net.Http.HttpRequestException:Der Antwortstatuscode gibt keinen Erfolg an:400(Bad Request)。 bei System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() bei Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationHandler.d__4.MoveNext()
我从头开始创建了一个干净的测试项目,以找出问题的原因。这是我发现的:
问题必须在Microsoft.Owin.Security.MicrosoftAccount。
中有没有人知道 - 除了使用3.0.1版 - 如何解决问题或这是微软支持的问题?