Я слегка изменяю код с Integrating Azure AD into an ASP.NET Core web app sample. Я могу запустить приложение успешно, и если я нажму ссылку «Войти», я правильно перенаправляюсь на страницу входа в Azure AD.AutomaticChallenge не работает для CookieAuthentication в ASP.NET MVC Core с примером Azure AD
Однако я также хотел бы, чтобы приложение автоматически перенаправляло меня на страницу входа в систему, если я пытаюсь получить доступ к маршруту, который защищен атрибутом Authorize
. Я добавил атрибут [Authorize]
к действию Contact
, но если я попытаюсь получить к нему доступ без входа в систему, я не перенаправляюсь на страницу входа. Если я заходил на страницу контакта во время входа в систему, она отображается правильно.
Я обновил файл Startup.cs
следующим образом:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
LoginPath = "/Account/Login"
});
Но даже с этими изменениями, я не попадаю на страницу входа в систему. Есть что-то еще, что мне не хватает?
Я выполняю проверку на моей стороне, образец работает нормально, если я добавлю атрибут [Авторизовать] к действию контроллера, а затем вызовите этот actio n без входа в систему, он будет перенаправлен на страницу входа. Вы изменили образец кода, можете ли вы поделиться с нами своим кодом с обновлением, чтобы воспроизвести проблему? –
Вы также не упоминаете, что на самом деле происходит, когда вы выполняете действие контакта, когда вы не вошли в систему. Вы просто говорите, что вы не перенаправляетесь на страницу входа. Пожалуйста, разместите все свои моды, а также какие ошибки или поведение вы видите. Благодаря! –
Спасибо за помощь. Я нашел ответ и отметил его. Просто FYI, когда у меня возникла проблема, он проявил себя как пустая страница с браузером, показывающим URL/Home/Contact в адресной строке. Также инструменты F12 показали, что страница получает код несанкционированного ответа 401. Но, как отмечено ниже, это похоже на изменение версии 1.1.0 пакета Microsoft.AspNetCore.Authentication.Cookies. – John