powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в cshtml сделать редирект?
25 сообщений из 81, страница 1 из 4
Как в cshtml сделать редирект?
    #39899539
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы сделать так: если вызывается страница с незалогиненным юзером - сделать редирект на
Login.cshtml, например, заходит сюда, проверяем, и как сделать редирект там, где анонимус?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@{
    ViewData["Title"] = "Dashboard";
}



<hr />
<div class="row">
    <div class="col-md-6">
        @if (User.Identity.IsAuthenticated)
        {
            <span><i class="glyphicon glyphicon-ok text-success"></i>&nbsp; Hello @User.Identity.Name</span>
        }
        else
        {
            <span><i class="glyphicon glyphicon-ok text-success"></i>&nbsp; Hello Anonymous</span>
        }
        <h2>Dashboard</h2>
        <p>
            <b>Charts, diagrams, graphs etc</b>
        </p>
    </div>
</div>
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899541
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем тут cshtml? Это делается либо в контроллере, либо в фильтрах
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899548
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На любой вопрос - любой ответ:

Код: c#
1.
2.
3.
@{ 
    HttpContext.Response.Redirect("https://user-idi-v-her.com/sjuda.html");
}



Только это писец какой я даже и не знаю что, т.к. и слово "кривой костыль" недостаточно. Редиректы делать это вообще не работа View.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899556
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Причем тут cshtml? Это делается либо в контроллере, либо в фильтрах


Осознал, это была первая шальная мысль, сделал так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        public IActionResult Deals()
        {
            string str_returnUrl = "~/Home/Deals";
            _logger.LogInformation("HomeController:Deals()->Redirect->Auth:str_returnUrl="+ str_returnUrl);
            return RedirectToAction("Login", "Auth", new { returnUrl = str_returnUrl });
        }

        [Authorize]
        public IActionResult DealsProtected()
        {
            _logger.LogInformation("HomeController:DealsProtected()");
            return View();
        }



Сейчас при вызове Deals перенаправляется на страницу Login, там ввожу имя+пароль и возвращается на Deals.
Но думалось так, что при уже авторизованном юзере должен бы вызываться DealsProtected, но снова вызывается Deals и так по кругу.
Чего-то не хватает, но не пойму чего?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899558
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё это руками писать не требуется. Всё уже сделано до тебя из коробки - переадресация, возврат.
Создай шаблонный MVC-проект с авторизацией и посмотри, как он устроен.
Или почитай документацию.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899561
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Всё это руками писать не требуется. Всё уже сделано до тебя из коробки - переадресация, возврат.
Создай шаблонный MVC-проект с авторизацией и посмотри, как он устроен.
Или почитай документацию.


Да мне бы надо свою авторизацию сделать, т.е. юзер+пароль в базе проверять, вот, думал небольшой велосипед сделать
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899562
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одному мне кажется, что тут будет что-то типа вечного редиректа? С /deals меня отридеректит на /login где после успешного логина отредиректит обратно на страницу /deals откуда снова отредиректит на страницу /login. Мы вставили тебе логин в логин, чтобы ты мог ввести свой логин.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899563
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Да мне бы надо свою авторизацию сделать, т.е. юзер+пароль в базе проверять, вот, думал небольшой велосипед сделать

Зачем? Есть Identity - работает с практически любой БД, если у вас не какой-нибудь FoxPro или DBase из 80-х (да и к тем, наверняка можно свои stores для identity написать).
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899565
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Да мне бы надо свою авторизацию сделать, т.е. юзер+пароль в базе проверять
И какое это отношение имеет к редиректам и прочему?
Пожалуйста, реализуешь нужные интерфейсы и проверяешь что хочешь с помощью штатного Identity.
Для этого надо всего лишь потратить полчаса на чтение документации, но нет, мы будем неделями писать свои велосипеды.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899566
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Зачем? Есть Identity - работает с практически любой БД, если у вас не какой-нибудь FoxPro или DBase из 80-х (да и к тем, наверняка можно свои stores для identity написать).
да хоть на текстовых файлах. Конечно можно реализовать свой UserStore
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899588
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Ролг Хупин
Да мне бы надо свою авторизацию сделать, т.е. юзер+пароль в базе проверять, вот, думал небольшой велосипед сделать

Зачем? Есть Identity - работает с практически любой БД, если у вас не какой-нибудь FoxPro или DBase из 80-х (да и к тем, наверняка можно свои stores для identity написать).


Здесь PostgreSQL...
где бы пример найти, как identity использовать?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899590
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Здесь PostgreSQL...
где бы пример найти, как identity использовать?
Летят два крокодила, один на север, другой зеленый.

Да не вали ты всё в кучу.

Если ты используешь Identity из коробки, он сам создаёт структуру для своих таблиц и работает через EF, ему пофиг, какая у тебя СУБД, разница только в строке подключения.

Если тебе нужно использовать СОБСТВЕННУЮ структуру хранения пользователей в БД, то пожалуйста - ты можешь реализовать свой UserStore и другие сопутствующие интерфейсы. При этом пофиг, какая у тебя СУБД, какой у тебя ORM - ты сам реализуешь методы проверки аутентификации (и авторизации, при желании).
И это всё не имеет отношения ни к СУБД, ни к редиректам.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899597
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
где бы пример найти, как identity использовать?

Ну вот же тебе целый сайт . Там примеров и туториалов по самое не хочу вообще на любой случай жизни.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899601
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Ролг Хупин
где бы пример найти, как identity использовать?

Ну вот же тебе целый сайт . Там примеров и туториалов по самое не хочу вообще на любой случай жизни.


Ролг Хупин
Shocker.Pro
ссылку ему дали выше, но ведь это не царское дело - учебники читать.
что есть, то есть...
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899605
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
Здесь PostgreSQL...
где бы пример найти, как identity использовать?
Летят два крокодила, один на север, другой зеленый.

Да не вали ты всё в кучу.

Если ты используешь Identity из коробки, он сам создаёт структуру для своих таблиц и работает через EF, ему пофиг, какая у тебя СУБД, разница только в строке подключения.

Если тебе нужно использовать СОБСТВЕННУЮ структуру хранения пользователей в БД, то пожалуйста - ты можешь реализовать свой UserStore и другие сопутствующие интерфейсы. При этом пофиг, какая у тебя СУБД, какой у тебя ORM - ты сам реализуешь методы проверки аутентификации (и авторизации, при желании).
И это всё не имеет отношения ни к СУБД, ни к редиректам.


да, проблема в том, что есть база с данными, в ней таблица с юзерами типа имя, пароль, флаг администратор или нет, емейл.
С базой работают клиенты через старое винформс приложение.
Пытаюсь сделать ASP.NET самохост и клиентсукю часть.
Ну, вот, в этом всем надо использовать уже существующую таблицу. Я так понял, что если использовать ASP.NET User Store через EF - это требует своей структуры в базе.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899616
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Я так понял, что если использовать ASP.NET User Store через EF - это требует своей структуры в базе.
Еще раз. Ты можешь не использовать стандартный "User Store через EF". Ты можешь реализовать свой UserStore через какой хочешь ORM и с какой хочешь структурой таблиц. Вся эта система модульная, и ты можешь спокойно заменять некоторые модули на свои.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899634
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
да, проблема в том, что есть база с данными, в ней таблица с юзерами типа имя, пароль, флаг администратор или нет, емейл.
С базой работают клиенты через старое винформс приложение.
Пытаюсь сделать ASP.NET самохост и клиентсукю часть.
Ну, вот, в этом всем надо использовать уже существующую таблицу. Я так понял, что если использовать ASP.NET User Store через EF - это требует своей структуры в базе.

Еще и пароль, наверное, в plaintext. Как выше написали - под identity можно легко прикрутить любой back-storage. Это всего лишь стандартный API для работы с произвольным хранилищем пользовательских credentials и связанной с этим другой информации. Под ним снизу в качестве storage может быть все что угодно - хоть на перфокартах логины/пароли храни. Связка осуществляется просто через компоненты со стандартными интерфейсами - когда тебе нужен какой-то совсем кастомный storage для этого, то ты просто пишешь компоненты с нужными интерфейсами (в основном IUserStore) и identity все это автоматически подхватывает: Custom storage providers for ASP.NET Core Identity Но, на твоем месте, я бы выкинул вашу поделку и прицепил уже то, что из коробки есть, исходя из той СУБД что у вас для этого есть. Потому что там далеко не только логины и пароли, а куча еще всего готового. Захотите например завтра вход через аккаунт "вконтакте", 2FA с подтверждением SMS-кодом и сброс пароля по ссылке на e-mail - там все это уже будет сразу, только подключить в настройках, и не надо будет изобретать свои велосипеды (которые еще, как правило, дырявые оказываются) - недавно видел, как обнаружилось, что у чуваков их самодельный 2FA, который они месяц изобретали, ломается тупым перебором минут за десять.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899923
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Ролг Хупин
да, проблема в том, что есть база с данными, в ней таблица с юзерами типа имя, пароль, флаг администратор или нет, емейл.
С базой работают клиенты через старое винформс приложение.
Пытаюсь сделать ASP.NET самохост и клиентсукю часть.
Ну, вот, в этом всем надо использовать уже существующую таблицу. Я так понял, что если использовать ASP.NET User Store через EF - это требует своей структуры в базе.

Еще и пароль, наверное, в plaintext. Как выше написали - под identity можно легко прикрутить любой back-storage. Это всего лишь стандартный API для работы с произвольным хранилищем пользовательских credentials и связанной с этим другой информации. Под ним снизу в качестве storage может быть все что угодно - хоть на перфокартах логины/пароли храни. Связка осуществляется просто через компоненты со стандартными интерфейсами - когда тебе нужен какой-то совсем кастомный storage для этого, то ты просто пишешь компоненты с нужными интерфейсами (в основном IUserStore) и identity все это автоматически подхватывает: Custom storage providers for ASP.NET Core Identity Но, на твоем месте, я бы выкинул вашу поделку и прицепил уже то, что из коробки есть, исходя из той СУБД что у вас для этого есть. Потому что там далеко не только логины и пароли, а куча еще всего готового. Захотите например завтра вход через аккаунт "вконтакте", 2FA с подтверждением SMS-кодом и сброс пароля по ссылке на e-mail - там все это уже будет сразу, только подключить в настройках, и не надо будет изобретать свои велосипеды (которые еще, как правило, дырявые оказываются) - недавно видел, как обнаружилось, что у чуваков их самодельный 2FA, который они месяц изобретали, ломается тупым перебором минут за десять.



выкинуть "поделку" - не сложно, ее нет, она у меня в руках скользит

Посмотрел пример, в принципе, уже проясняется, пара вопросов:

1. юзер регистрируется сам и ждет подтверждения от некоего админа. Это самый админ - он как подтверждает данные юзера, разрешая ему вход в систему? т.е. надо иметь какой-то интерфейса для админа тоже?

2. Существующая тблица юзеров доолжна быть притянута к структуре, которая нужна провайдеру. При этом в моем случае надо, чтобы существующая таблица работала для старых приложений.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39899937
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
1. юзер регистрируется сам и ждет подтверждения от некоего админа. Это самый админ - он как подтверждает данные юзера, разрешая ему вход в систему? т.е. надо иметь какой-то интерфейса для админа тоже?
В общем-то это всё на твоё усмотрение, можно и без подтверждения


Ролг Хупин
2. Существующая тблица юзеров доолжна быть притянута к структуре, которая нужна провайдеру. При этом в моем случае надо, чтобы существующая таблица работала для старых приложений.
Что ты подразумеваешь под провайдером? Ты можешь НЕ МЕНЯТЬ существующую таблицу твоего хранения юзеров. Identity пофиг, как хранятся твои юзеры, он работает с хранилищем через интерфейс.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901058
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
1. юзер регистрируется сам и ждет подтверждения от некоего админа. Это самый админ - он как подтверждает данные юзера, разрешая ему вход в систему? т.е. надо иметь какой-то интерфейса для админа тоже?
В общем-то это всё на твоё усмотрение, можно и без подтверждения


Ролг Хупин
2. Существующая тблица юзеров доолжна быть притянута к структуре, которая нужна провайдеру. При этом в моем случае надо, чтобы существующая таблица работала для старых приложений.
Что ты подразумеваешь под провайдером? Ты можешь НЕ МЕНЯТЬ существующую таблицу твоего хранения юзеров. Identity пофиг, как хранятся твои юзеры, он работает с хранилищем через интерфейс.


Прислушался к рекомедациям мастеров (от меня благодарочка ), сделал так:
Нашел такую реализацию:
https://github.com/Robynhu/AspNetCore.Identity.PostgreSQL

Прикрутил ее к своему прожекту, выкинув все, что намутил до того, и из прожекта и из головы.
Пустил скрипт на базу
https://github.com/Robynhu/AspNetCore.Identity.PostgreSQL/blob/master/PostgresIdentity.sql

создались таблицы, все ок.

Стартонул приложение, на странице логин зарегистрировался, поскольку таблица пустая.
Вопрос:
Посмотрел руками - в таблице появилась запись об этом юзере, все как регистрировался.
Но залогиниться не могу, пишет инвалид. Чего-то не хватает, может подтверждения? где это и как это сделать?
Пальцами в базе?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901083
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал какую-то левую библиотеку.
Она пишет какую-то ошибку.
Памагити!
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901112
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

А чем вот это не подходит? Конфигуришь свой DbContext работать с Postgres и все, не?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901180
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Скачал какую-то левую библиотеку.
Она пишет какую-то ошибку.
Памагити!


нет! чисто вопросы

там еще веселее: после регистрации юзера можно логиниться, честно проверяет пароль, но не редиректит, остается на той же логин странице
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901250
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Ролг Хупин,

А чем вот это не подходит? Конфигуришь свой DbContext работать с Postgres и все, не?


всё, пошел по этой дорожке

Было тестовое приложение, сделано под SqlServer там:
Код: c#
1.
2.
 services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection")));




Как поменять ориентацию на PostgreSQL?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901281
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Как поменять ориентацию на PostgreSQL?

Очевидно, что использовать вот это .

Только учти, там по ссылке, походу, пример говеный. (Вместо переопределения в контексте OnConfiguring нужно просто делать конструктор с DbContextOptions, как обычно делают)
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 1 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в cshtml сделать редирект?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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