powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
14 сообщений из 14, страница 1 из 1
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39636976
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу получить не 302, а 401, если неаутентифицированный юзер пытается получить доступ к [Authorize] контроллеру

Нагуглил только эту статью
https://dotnetcoretutorials.com/2017/09/16/cookie-authentication-asp-net-core-2-0/
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
	.AddCookie(options => {
		options.Events.OnRedirectToLogin = (context) =>
		{
			context.Response.StatusCode = 401;
			return Task.CompletedTask;
		};
	});




Но, во-первых, оно у меня не заработало.
Во-вторых - я не совсем понимаю место этого решения в настройке Identity.
Предлагается установить пакет
Код: plaintext
Microsoft.AspNetCore.Authentication.Cookies
Зачем, если Identity и так работает.

Или же предполагается, что я вообще не должен ставить Identity и не использовать
Код: c#
1.
services.AddIdentity<AppUser, IdentityRole>

Тогда не понятно, что со всеми остальными плюшками - UserManager и т.п.
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637117
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

401 у тебя возвращается, но происходит редирект на логин

https://devblog.dymel.pl/2016/07/07/return-401-unauthorized-from-asp-net-core-api/
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637161
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Редирект происходит еще на сервере.
На клиенте 401 я не увижу, увижу 302.
Статья, ссылку на которую ты дал, относится к Core 1.x
В Core 2.0 нет options.Cookies
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637181
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

вариантов решения много. зависит чего ты хочешь в конечном счёте. вообще для всех запросов возвращать 401? или только при обращении к API? или только при обращениях AJAX?

отключить challenge совсем так (для куки):

Код: c#
1.
2.
3.
services.AddIdentity<ApplicationUser, IdentityRole>(o => {
    o.Cookies.ApplicationCookie.AutomaticChallenge = false;
});



если нужно точечно, то устанавливать OnRedirectToLogin
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637183
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

у тебя не заработало, потому что ты не сделал предварительно context.Response.Clear();
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637194
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttвариантов решения много. зависит чего ты хочешь в конечном счёте. вообще для всех запросов возвращать 401? или только при обращении к API? или только при обращениях AJAX?Я почему-то не нашел ни один.
По большому счету для запросов к "/api/...". Сейчас все запросы такие, но в дальнейшем вероятно появятся и несколько страниц MVC. Запросы пока идут от WPF-клиента, в будущем могут быть запросы от браузера (как к апи, так и к обычным страницам)
hVosttотключить challenge совсем так (для куки):Повторяю - это решение для Core 1.x, в Core 2.0 этого нет.
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637197
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttу тебя не заработало, потому что ты не сделал предварительно context.Response.Clear();Ну сделал - не помогло. В эту часть кода он вообще не заходит.
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637350
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,


ну фиг знает, у нас всё работает :)
добавь middleware, который будет в конце pipeline ловить 302 редирект и возвращать 401, это будет железно работать
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637357
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну фиг знает, у нас всё работает :)У вас все работает на Core 2.0?
Какой вариант, который ты привел, которого нет в Core 2.0?
Или который я привел, но тогда подскажи, как выглядит конфигурация Identity в Startup и какие пакеты используются.

hVosttдобавь middleware, который будет в конце pipeline ловить 302 редирект и возвращать 401, это будет железно работатьЯ с тем же успехом могу считать статус 302 на клиент статусом отсутствия авторизации. Но хочется же по уму сделать
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637360
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProУ вас все работает на Core 2.0?
Какой вариант, который ты привел, которого нет в Core 2.0?
Или который я привел, но тогда подскажи, как выглядит конфигурация Identity в Startup и какие пакеты используются.

У нас Core 2.0 (местами что-то уже на пререлизе 2.1).
У нас OpenId Connect и SSO, вообще не пользуеся моделью Identity хранилища и этой инфраструктурой.


Shocker.ProЯ с тем же успехом могу считать статус 302 на клиент статусом отсутствия авторизации. Но хочется же по уму сделать

Надо исходники зырить, либо твои, либо ASP.NET COre, благо они в открытом доступе.
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637367
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЯ с тем же успехом могу считать статус 302 на клиент статусом отсутствия авторизации. Но хочется же по уму сделать

Но middleware -- это не плохо )
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637410
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttУ нас OpenId Connect и SSO, вообще не пользуеся моделью Identity хранилища и этой инфраструктуройа, ну тогда понятно

hVosttНадо исходники зырить, либо твои, либо ASP.NET COre, благо они в открытом доступе.Не, ну а чо зырить, пока я буду изучать, что там понаворотили, уже третья версия выйдет и опять все перепишут.

Внутри services.AddIdentity пачка регистраций сервисов, в том числе и этого действия. По идее, можно раскурить, продублировать и переопределить ненужное и использовать вместо services.AddIdentity всю это последовательность. Но я не люблю коробку ковырять, они потом опять что-нить переделают.

Раньше ведь был AutomaticChallenge = false, вещь востребованная, может одумаются и добавят настройку.
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637432
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

вот breaking changes на эту тему, подробно

https://github.com/aspnet/Announcements/issues/232
...
Рейтинг: 0 / 0
ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
    #39637483
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, там вместо
New:app.AddAuthentication
по всей видимости следует читать
services.AddAuthentication

И тогда мы возвращаемся к первому моему вопросу - какое место здесь занимает services.AddIdentity?
И если его убрать, то как мне организовывать свой класс пользователя.
Тут вроде все понятно разжевано - реализовываешь свой класс юзера и хранилища и всё, дальше работает из коробки. А если без services.AddIdentity, то как тогда?

Я вообще может где-то заблудился - Authentication в данном случае часть Identity или это взаимоисключающие вещи, или перпендикулярные?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.Net Core 2 Identity - отключить перенаправление на страницу логина
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]