OWIN OpenID провайдер - GetExternalLoginInfo () возвращает ноль

У меня проблема с поставщиками OWIN OpenId в приложении ASP.NET MVC5, которое использует удостоверение ASP.NET и основано на шаблоне VS2013 с проверкой подлинности индивидуальной учетной записи пользователя. OWIN OpenID провайдеры для Google и LinkedIn используются для аутентификации при входе.

Проблема в том, что то, что кажется очень случайным; GetExternalLoginInfo () возвращает ноль при обратном вызове LoginConfirmation, даже если аутентификация входа прошла успешно.

var authManager = HttpContext.Current.GetOwinContext().Authentication;
var login = authManager.GetExternalLoginInfo();

Используемыми поставщиками являются Google (Microsoft.Owin.Security.Google 2.1.0) и LinkedIn (из Owin.Security.Providers 1.3), и оба поставщика вызывают одну и ту же проблему.

Иногда происходит сбой один раз, а затем снова работает, но иногда он просто продолжает сбой, пока AppPool не будет переработан.

В настоящее время два экземпляра приложения размещены в IIS на одной виртуальной машине Windows Azure. Каждый экземпляр имеет свой собственный AppPool, но идентичные настройки (разные субдомены). Иногда логин перестает работать на одном экземпляре, но все еще работает на другом экземпляре.

Эта проблема также была воспроизведена локально (IIS Express - VS2013).

Кто-нибудь испытывал подобные проблемы с OWIN OpenID аутентификацией?

Startup.Auth.cs выглядит так:

public void ConfigureAuth(IAppBuilder app)
{
    // Enable the application to use a cookie to store information for the signed in user
    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Account/Login"),
    });
    // Use a cookie to temporarily store information about a user logging in with a third       party login provider
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

    app.UseGoogleAuthentication();

    app.UseLinkedInAuthentication("clientId", "clientSecret");
}

Следующие пакеты nuget OWIN используются:

  <package id="Microsoft.AspNet.Identity.Core" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Identity.Owin" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.ActiveDirectory" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.Cookies" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.Facebook" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.Google" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.Jwt" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.MicrosoftAccount" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.OAuth" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Security.Twitter" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Owin" version="1.0" targetFramework="net45" />
  <package id="Owin.Security.Providers" version="1.3" targetFramework="net45" />
  <package id="System.IdentityModel.Tokens.Jwt" version="3.0.2" targetFramework="net45" />

Ответы на вопрос(6)

Ваш ответ на вопрос