4

Я пытаюсь интегрировать свой веб-сервис для аутентификации с использованием Azure AD. Ответ от Azure AD меняется каждый раз. Когда я открываю свой сайт в обычном браузере Firefox, IsAuthenticated as true.Azure AD API возвращает System.Security.Principal.GenericIdentity.IsAuthenticated как false всегда

IsAuthenticatedAsTrue

Открытие в частном браузере, то IsAuthenticated ложно.

IsAuthenticatedAsFalse

Единственная разница я могу увидеть, то IsAuthenticated правда от ClaimsIdentity и IsAuthenticated ложь от GenericIdentity.

Следующий мой код запуска.auth.

public partial class Startup 
{ 
    private static string clientId = ConfigurationManager.AppSettings["ClientId"]; 
    private static string aadInstance = ConfigurationManager.AppSettings["AADInstance"]; 
    private static string tenantId = ConfigurationManager.AppSettings["TenantId"]; 
    private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["PostLogoutRedirectUri"]; 
    private static string authority = aadInstance + tenantId; 

    public void ConfigureAuth(IAppBuilder app) 
    { 
     app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 

     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

     app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 
       ClientId = clientId, 
       Authority = authority, 
       PostLogoutRedirectUri = postLogoutRedirectUri 
      }); 
    } 
} 

Ниже мой код, чтобы отправить запрос на проверку подлинности на AzureAD

public void LoginUsingAzure() 
    { 
     HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, 
       OpenIdConnectAuthenticationDefaults.AuthenticationType); 
    } 
+0

Вы говорите, что открыли личное окно, а затем не вошли? Поскольку частное окно не обменивается сеансами с другим окном. – juunas

+0

эта проблема также воспроизводится в обычном окне. после входа на мой сайт в обычном браузере, затем очистки кеша и файлов cookie в браузере, и когда я попытаюсь снова войти в систему, я столкнулся с этой проблемой. эта проблема воспроизводится во всех браузерах. Есть ли что-то, что мне нужно настроить на портале Azure AD? –

+0

Очистка файлов cookie: вы также не очищаете cookie проверки подлинности ASP.NET? Разве это не ожидало, что он скажет, что вы не аутентифицированы? Признание GenericIdentity означает, что вы еще не прошли аутентификацию. – juunas

ответ

0

Эта проблема была устранена. Причиной этой проблемы является проблема зависимости. Найден ответ в приведенной ниже ссылке stackoverflow.

ASP.NET_SessionId + OWIN Cookies do not send to browser

Установка Kentor.OwinCookieSaver -Version 1.1.0 NuGet пакет, решить мою проблему.

0

Я пытаюсь воспроизвести этот вопрос, однако не удалось. Я тестирую веб-приложение с помощью версии 50.1.0 с чистой установкой.

Чтобы устранить эту проблему, я предлагаю вам переустановить Firefox с этой версией.

Вот тест рисунок для справки:

enter image description here

+0

Я переустановил мой firefox и использую версию 51.0.13. но я все еще сталкиваюсь с этой проблемой. Могу ли я узнать, какой тип аутентификации вы используете? это openid или oauth? –

+0

Я тестировал [этот пример кода] (https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect), используя соединение openId. –

+0

Я все еще могу воспроизвести свою проблему. Я использовал тот же пример кода для реализации. после входа на мой сайт, затем очистки кеша и файлов cookie в браузере, и когда я попытаюсь снова войти в систему, я столкнулся с этой проблемой. Есть ли что-то, что мне нужно настроить на портале Azure AD? –

Смежные вопросы