У меня есть проект ASP.NET 5, и я использую Web API для установки внешнего входа (для Facebook и Google). В моем случае у меня есть API-интерфейс API (не MVC-контроллер), который содержит следующий код:
[OverrideAuthentication]
[HostAuthentication(DefaultAuthenticationTypes.ExternalCookie)]
[AllowAnonymous]
[Route("ExternalLogin", Name = "ExternalLogin")]
public async Task<IHttpActionResult> GetExternalLogin(string provider, string error = null)
{
if (error != null)
return Redirect(Url.Content("~/") + "#error=" + Uri.EscapeDataString(error));
if (!User.Identity.IsAuthenticated)
return new ChallengeResult(provider, this);
var exLog = await Authentication.GetExternalLoginInfoAsync();
когда мобильное приложение вызывает этот метод, я получаю запрос аутентифицированным правильно, и свойство User.Identity.IsAuthenticated
истинно, и я вижу в отладчике, что пользователь прав, но проблема в том, exlog
переменная exlog
всегда приходит ноль.
здесь свойство Authentication
private IAuthenticationManager Authentication => this.Request.GetOwinContext().Authentication;
Я прочитал каждый вопрос о стеке об этой ошибке, но мне ничего не помогло, большинство вопросов для контроллера MVC, так что это не помогло.
например, этот вопрос не помог мне, потому что это для MVC.
Обновление Я использую Owin 4.0