Чтобы остановить перенаправление, вам нужно сначала найти причину.Вы можете инициировать запрос на вход обычно двумя способами -
Украсьте свой класс / метод атрибутом [Authorize]
, который вызовет запрос на вход.
Выполните явный вызов, как показано ниже ..
return Challenge(
new AuthenticationProperties { RedirectUri = redirectUrl },
OpenIdConnectDefaults.AuthenticationScheme);
Я не вижу достаточно подробностей о вашем коде, о котором идет речь ..., чтобы сказать вам, куда именновнести изменения, чтобы остановить перенаправление, но я могу угадать наиболее вероятную причину и показать вам пример.
Вот пример для примера ядра ASP.NET, который имеет явное действие входа с кодомдоступно на GitHub.
Интеграция Azure AD в веб-приложение ASP.NET Core
В частности, посмотрите на AccountController, чтобы узнать, как принудительно выполнить вход.
[Route("[controller]/[action]")]
public class AccountController : Controller
{
[HttpGet]
public IActionResult SignIn()
{
var redirectUrl = Url.Action(nameof(HomeController.Index), "Home");
return Challenge(
new AuthenticationProperties { RedirectUri = redirectUrl },
OpenIdConnectDefaults.AuthenticationScheme);
}
Кроме того, чтобы убедиться, что я могу видеть домашнюю страницу без необходимости входа в систему, я просто сделал простое изменение в примере кода для HomeController.cs.Я вынул атрибут [Authorize]
из HomeController, который присутствовал в исходном коде в GitHub.(иначе вы будете вынуждены войти в систему, как только вы запустите приложение)
namespace WebApp_OpenIDConnect_DotNet.Controllers
{
// notice there is no [Authorize] attribute now, to make landing page available without signin
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
Теперь, если кто-то явно нажимает на ссылку входа в систему вверху, только тогда он запрашивает учетные данные.Просто убедитесь, что вам не нужна конфиденциальная информация на главной странице, поскольку она теперь доступна всем.