Я хотел бы использовать Open ID Connect с Identity Server 4 для авторизации в моем серверном приложении Blazor. У меня такая же настройка, работающая в приложении MVC.
В новейшей версии .NET Core 3.0 Preview 6 можно добавить на сайт атрибут ´ @ attribute [Authorize] ´. Но если я не авторизован, меня не перенаправляют на Identity Server для входа в систему, поскольку меня используют мои приложения MVC. Вместо этого на сайте отображается только сообщение «Не авторизован».
В Startup.cs у меня следующая настройка:
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ClientId = "myClient";
options.SaveTokens = true;
});
а также
app.UseAuthentication();
Как сообщить приложению, что я хочу, чтобы меня перенаправили на сервер идентификации, если я не вошел в систему?
РЕДАКТИРОВАТЬ: ответ Codevisions работает как обходной путь. Я обнаружил нерешенные проблемы с github здесь и здесь, запланированный для .NET Core 3.0 Preview 7, который, возможно, официально рассмотрит эту проблему.