powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в cshtml сделать редирект?
25 сообщений из 81, страница 3 из 4
Как в cshtml сделать редирект?
    #39901815
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
А WinForms клиент не использует аутентификацию и авторизацию? И с базой он уже работает.
Большая проблема взять код из него? К чему все эти танцы с бубном?

Подозреваю, что там такой баттон-клик, что и взять ничего нельзя
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901817
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дмитрий Мух
А WinForms клиент не использует аутентификацию и авторизацию? И с базой он уже работает.
Большая проблема взять код из него? К чему все эти танцы с бубном?

Подозреваю, что там такой баттон-клик, что и взять ничего нельзя
Подозреваю, что ТСу всё равно придётся в нём разбираться.
А возможно и развивать в дальнейшем оба приложения.

Я бы брал уже готовый код и понемногу рефакторил, вместо того, чтобы героически лепить свои костыли, а потом выяснить, что к живой базе они не применимы.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901820
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположим, что в текущем WinForms клиенте есть и аутентификация, и авторизация.
И под это дело уже есть объекты в БД.

ТС сейчас наваяет своими миграциями ещё объектов, и что? Будет синхронизировать данные между ними?
То есть тратить время не на задачу, а на самим собой придуманные проблемы? :)
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901821
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ему несколько предлагал реализовать свой ЮзерСтор на имеющихся таблицах, но он - самурай!
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901823
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Предположим, что в текущем WinForms клиенте есть и аутентификация, и авторизация.
И под это дело уже есть объекты в БД.

А чего предполагать-то, вот же он сам писал:
Ролг Хупин
есть база с данными, в ней таблица с юзерами типа имя, пароль, флаг администратор или нет, емейл.
С базой работают клиенты через старое винформс приложение

Вообщем считаю, что ТС пошёл не туда и в пустую потратил время.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901824
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
в пустую потратил время.
думаю, что то, что он сейчас натыкал и прочел, ему никак не повредит
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901825
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Я ему несколько предлагал реализовать свой ЮзерСтор на имеющихся таблицах, но он - самурай!
Да он просто не умеет и ищет готовые примеры и код.
А они не про "свой ЮзерСтор на имеющихся таблицах", а про "простейший пример с SqlServer".
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901827
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Дмитрий Мух
в пустую потратил время.
думаю, что то, что он сейчас натыкал и прочел, ему никак не повредит

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

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


Не то чтобы перевожу, но практичеки надо сделать ASP.NET клиента, и соответственно сервер, база остается

А WinForms клиент не использует аутентификацию и авторизацию? И с базой он уже работает.
Большая проблема взять код из него? К чему все эти танцы с бубном?


Он использует, но там все простой рукопашный вариант, есть таблица с юзерами: (юзернейм, емайл, хэшпароля, админ или нет)
Я и хотел адаптировать это с минимальными затратами, но в ASP.NET надо бы заставлять юзера логиниться и т.д.
Коллеги порекомендовали не парить мозги и использовать ASP.NET Identity. оно выглядит логично, чтобы не изобретать лисапед.
Я там выше писал, как пытался использовать рукодельный нугет пакет для постгреса, там проще, скрипт, несовместимостей нет.
В EF блудняк какой-то, они судя по всему сделали для PG >=10, и даже если у меня получится заставить работать, то в рабочая база AWS - постгрес 9.6....
Такая фигня Теперь вот думаю, куда бежать
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901844
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

можно и "простой рукопашный вариант, есть таблица с юзерами: (юзернейм, емайл, хэшпароля, админ или нет)" в ASP.NET использовать
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901851
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Ролг Хупин,

можно и "простой рукопашный вариант, есть таблица с юзерами: (юзернейм, емайл, хэшпароля, админ или нет)" в ASP.NET использовать


я так и собирался, тем более, мне надо бы использовать уже имеющиеся данные о юзерах, и с той же базой какое-то время должны работать и старые WinForms приложения, и новое ASP.NET Core.
Но как это сделать остается вопросом.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901855
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

например вот так: Аутентификация на основе куки .
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginModel model)
{
    if (ModelState.IsValid)
    {
        User user = await db.Users.FirstOrDefaultAsync(u => u.Email == model.Email && u.Password == model.Password);
        if (user != null)
        {
            await Authenticate(model.Email); // аутентификация
 
            return RedirectToAction("Index", "Home");
        }
        ModelState.AddModelError("", "Некорректные логин и(или) пароль");
    }
    return View(model);
}


Только вместо EF, тот код, что работает в WinForms приложении.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901856
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо Email юзернейм (или что там в WinFroms для логина используется), вместо Password хэшпароля...
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901858
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дмитрий Мух
Предположим, что в текущем WinForms клиенте есть и аутентификация, и авторизация.

Да нет там этого ничего, стопроцентов. Вангую, что там запрашивают таблицу по введенному пользователем логину/паролю, и если такой записи нет, то просто главная форма приложения закрывается :)


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

например вот так: Аутентификация на основе куки .
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginModel model)
{
    if (ModelState.IsValid)
    {
        User user = await db.Users.FirstOrDefaultAsync(u => u.Email == model.Email && u.Password == model.Password);
        if (user != null)
        {
            await Authenticate(model.Email); // аутентификация
 
            return RedirectToAction("Index", "Home");
        }
        ModelState.AddModelError("", "Некорректные логин и(или) пароль");
    }
    return View(model);
}


Только вместо EF, тот код, что работает в WinForms приложении.



Я бы и рад использовать что-то попроще, управляемое, тем более, правильно было сказано выше, EF прикручивает свои таблицы, надо думать о синхронизации и т.д.
И эта тема началась с моего вопроса: сделал, проверялись логины, но редирект не делался почему-то, каждый раз возвращался на Логин. Если бы после проверки срабатывал редирект на ту страницу, с которой была вызвана страница Логин - я бы не мудохался с EF.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901866
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
fkthat
пропущено...

Да нет там этого ничего, стопроцентов. Вангую, что там запрашивают таблицу по введенному пользователем логину/паролю, и если такой записи нет, то просто главная форма приложения закрывается :)


вангуй, не вангуй, в общем - не надо бы ванговать

Так бери код оттуда, рефактори и использую.
Тебе надо ещё и бизнес-логику в веб-приложение перенести.
Думаешь это будет просто сделать, имея старое WinForms приложение?

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

например вот так: Аутентификация на основе куки .
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginModel model)
{
    if (ModelState.IsValid)
    {
        User user = await db.Users.FirstOrDefaultAsync(u => u.Email == model.Email && u.Password == model.Password);
        if (user != null)
        {
            await Authenticate(model.Email); // аутентификация
 
            return RedirectToAction("Index", "Home");
        }
        ModelState.AddModelError("", "Некорректные логин и(или) пароль");
    }
    return View(model);
}



Только вместо EF, тот код, что работает в WinForms приложении.



Я бы и рад использовать что-то попроще, управляемое, тем более, правильно было сказано выше, EF прикручивает свои таблицы, надо думать о синхронизации и т.д.
И эта тема началась с моего вопроса: сделал, проверялись логины, но редирект не делался почему-то, каждый раз возвращался на Логин. Если бы после проверки срабатывал редирект на ту страницу, с которой была вызвана страница Логин - я бы не мудохался с EF.

EF-то тут вообще при чём? Ты хоть что-нибудь прочитал на тему того, что такое аутентификация в вебе? Какая она бывает?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901873
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

выше я тебе ссылку дал, где в первой части написано:

ASP.NET Core имеет встроенную поддержку аутентификации на основе куки.
Для этого в ASP.NET определен специальный компонент middleware, который сериализует данные пользователя в зашифрованные аутентификационные куки и передает их на сторону клиента.
При получении запроса от клиента, в котором содержатся аутентификационные куки, происходит их валидация, десериализация и инициализация свойства User объекта HttpContext.

Как бы этому механизму по фигу где там у тебя данные о пользователях хранятся и через EF их ты достанешь, или ещё как.
Надо тупо достать, сформировать ClaimsIdentity, засунуть в ClaimsPrincipal и передать в HttpContext.SignInAsync.

И в статье показано как.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901875
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А то, что у тебя
Ролг Хупин
редирект не делался почему-то, каждый раз возвращался на Логин

так это потому, что ты сам так код написал
ASP.NET Core не умеет мысли читать и понимать, что написано хоть и одно, а имелось в виду другое
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901886
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Осознал, это была первая шальная мысль, сделал так

Код: 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 и так по кругу.

Ты типа решил, что если пометишь метод DealsProtected атрибутом Authorize, то на него и будет перенаправляться авторизованный пользователь? Такая типа магия?

Нет, он работает ровно так, как описано в документации. В статье, что я привёл выше, про это тоже рассказано.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901892
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Ролг Хупин
пропущено...



Я бы и рад использовать что-то попроще, управляемое, тем более, правильно было сказано выше, EF прикручивает свои таблицы, надо думать о синхронизации и т.д.
И эта тема началась с моего вопроса: сделал, проверялись логины, но редирект не делался почему-то, каждый раз возвращался на Логин. Если бы после проверки срабатывал редирект на ту страницу, с которой была вызвана страница Логин - я бы не мудохался с EF.

EF-то тут вообще при чём? Ты хоть что-нибудь прочитал на тему того, что такое аутентификация в вебе? Какая она бывает?


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

вот: Авторизация (а то же ты не любитель сам искать нужную информацию)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
 
public class HomeController : Controller
{
    [Authorize]
    public IActionResult Index()
    {
        return Content(User.Identity.Name);
    }
    // остальные методы
}


В этом случае доступ к методу Index имеют только те пользователи, которые залогинились в приложении.
Анонимные пользователи же в данном случае при доступе к методу Index будут переадресованы на форму входа в приложение.

Обрати внимание на: "будут переадресованы на форму входа в приложение".
То есть не надо самому никакие редиректы прописывать, а потом им удивляться.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901898
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Дмитрий Мух
пропущено...

EF-то тут вообще при чём? Ты хоть что-нибудь прочитал на тему того, что такое аутентификация в вебе? Какая она бывает?


в ходе обсуждения здесь мне настоятельно рекомендовали.
А ты типа вообще не заметил, что обсуждение ушло далеко в сторону от твоей задачи?

А учитывая следующее
Ролг Хупин
с той же базой какое-то время должны работать и старые WinForms приложения, и новое ASP.NET Core

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

EF-то тут вообще при чём? Ты хоть что-нибудь прочитал на тему того, что такое аутентификация в вебе? Какая она бывает?


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


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