powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в cshtml сделать редирект?
81 сообщений из 81, показаны все 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
Как в cshtml сделать редирект?
    #39901312
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Ролг Хупин
Как поменять ориентацию на PostgreSQL?

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

Только учти, там по ссылке, походу, пример говеный. (Вместо переопределения в контексте OnConfiguring нужно просто делать конструктор с DbContextOptions, как обычно делают)


Что имею:
1. сделал простейший пример с SqlServer, исправил строку коннекта, сделал логин - фигушки, регистер, потом логин - сработало!
После логина - редиректнулось на ноум\индекс,
в базе появились таблицы, в таблицах запись с юзером.
2. Добавил нугеты для постгреса, исправил строку коннекта, код изменил:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
            });
//                options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection")));
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseNpgsql( Configuration.GetConnectionString("DefaultConnection")));

            services.AddDefaultIdentity<IdentityUser>()
                .AddEntityFrameworkStores<ApplicationDbContext>();

            services.AddControllersWithViews()
                .AddNewtonsoftJson();
            services.AddRazorPages();
        }



пускаю - коннектится к базе, но дальше какая-то мутная ошибка
При этом - ладно таблица не существует, но EF должен бы сам создать и не выдавать ошибок.

Что с этим делать? Может сутруктуру можно рукми сделать и не париться? где взять скрипт со структурой?



Executing endpoint 'WebApplication1.Controllers.HomeController.Index (WebA
pplication1)'
info: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[3]
Route matched with {action = "Index", controller = "Home", page = "", area
= ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IAct
ionResult Index() on controller WebApplication1.Controllers.HomeController (WebA
pplication1).
info: Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor[1]
Executing ViewResult, running view Index.
info: Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor[4]
Executed ViewResult - view Index executed in 302.6169ms.
info: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]
Executed action WebApplication1.Controllers.HomeController.Index (WebAppli
cation1) in 315.3645ms
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'WebApplication1.Controllers.HomeController.Index (WebAp
plication1)'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 451.9255ms 200 text/html; charset=utf-8
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/1.1 GET https://localhost:5001/Identity/Account/Logi
n
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint '/Account/Login'
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[3]
Route matched with {page = "/Account/Login", area = "Identity", action = "
", controller = ""}. Executing page /Account/Login
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[101]
Executing handler method Microsoft.AspNetCore.Identity.UI.V4.Pages.Account
.Internal.LoginModel.OnGetAsync - ModelState is Valid
info: Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler[11
]
AuthenticationScheme: Identity.External signed out.
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[102]
Executed handler method OnGetAsync, returned result .
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[103]
Executing an implicit handler method - ModelState is Valid
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[104]
Executed an implicit handler method, returned result Microsoft.AspNetCore.
Mvc.RazorPages.PageResult.
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[4]
Executed page /Account/Login in 104.6291ms
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint '/Account/Login'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 157.5038ms 200 text/html; charset=utf-8
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/1.1 POST https://localhost:5001/Identity/Account/Log
in application/x-www-form-urlencoded 264
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint '/Account/Login'
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[3]
Route matched with {page = "/Account/Login", area = "Identity", action = "
", controller = ""}. Executing page /Account/Login
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[101]
Executing handler method Microsoft.AspNetCore.Identity.UI.V4.Pages.Account
.Internal.LoginModel.OnPostAsync - ModelState is Valid
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 3.1.0 initialized 'ApplicationDbContext' using provi
der 'Npgsql.EntityFrameworkCore.PostgreSQL' with options: None
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (182ms) [Parameters=[@__normalizedUserName_0='?
'], CommandType='Text', CommandTimeout='30']
SELECT a."Id", a."AccessFailedCount", a."ConcurrencyStamp", a."Email", a."
EmailConfirmed", a."LockoutEnabled", a."LockoutEnd", a."NormalizedEmail", a."Nor
malizedUserName", a."PasswordHash", a."PhoneNumber", a."PhoneNumberConfirmed", a
."SecurityStamp", a."TwoFactorEnabled", a."UserName"
FROM "AspNetUsers" AS a
WHERE a."NormalizedUserName" = @__normalizedUserName_0
LIMIT 1
fail: Microsoft.EntityFrameworkCore.Query[10100]
An exception occurred while iterating over the results of a query for cont
ext type 'WebApplication1.Data.ApplicationDbContext'.
Npgsql.PostgresException (0x80004005): 42P01: relation "AspNetUsers" does
not exist
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__Rea
dMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown -
--
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__Rea
dMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown -
--
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsumin
g)
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Bo
olean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavi
or, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReade
rAsync(RelationalCommandParameterObject parameterObject, CancellationToken cance
llationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReade
rAsync(RelationalCommandParameterObject parameterObject, CancellationToken cance
llationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReade
rAsync(RelationalCommandParameterObject parameterObject, CancellationToken cance
llationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.As
yncEnumerator.InitializeReaderAsync(DbContext _, Boolean result, CancellationTok
en cancellationToken)
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecuti
onStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 v
erifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.As
yncEnumerator.MoveNextAsync()
Exception data:
Severity: ERROR
SqlState: 42P01
MessageText: relation "AspNetUsers" does not exist
Position: 294
File: parse_relation.c
Line: 1159
Routine: parserOpenTable
Npgsql.PostgresException (0x80004005): 42P01: relation "AspNetUsers" does not ex
ist
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean
async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, Ca
ncellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync
(RelationalCommandParameterObject parameterObject, CancellationToken cancellatio
nToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync
(RelationalCommandParameterObject parameterObject, CancellationToken cancellatio
nToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync
(RelationalCommandParameterObject parameterObject, CancellationToken cancellatio
nToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.AsyncEnu
merator.InitializeReaderAsync(DbContext _, Boolean result, CancellationToken can
cellationToken)
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStra
tegy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifyS
ucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.AsyncEnu
merator.MoveNextAsync()
Exception data:
Severity: ERROR
SqlState: 42P01
MessageText: relation "AspNetUsers" does not exist
Position: 294
File: parse_relation.c
Line: 1159
Routine: parserOpenTable
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[4]
Executed page /Account/Login in 2362.999ms
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint '/Account/Login'
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (18ms) [Parameters=[], CommandType='Text', CommandTimeo
ut='30']
SELECT EXISTS (SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_name
space n ON n.oid=c.relnamespace WHERE c.relname='__EFMigrationsHistory');
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 3019.116ms 500 text/html; charset=utf-8

...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901338
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
но EF должен бы сам создать
ты update-database сделать не забыл?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901350
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Пишет:
ЛоггерMessageText: relation "AspNetUsers" does not exist

БД, значит, не инициализирована.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901360
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
но EF должен бы сам создать
ты update-database сделать не забыл?


то же приложение, работавшее с SqlServer все сделало само, структуру в базе, и продолжило работать.
А когда настроил до постгреса такая ошибка.
Делаю в студийной PM Console:

автор>
PM> Update-Database
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.TypeLoadException: Could not load type 'Microsoft.EntityFrameworkCore.Internal.ProductInfo' from assembly 'Microsoft.EntityFrameworkCore, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
at Microsoft.EntityFrameworkCore.Design.OperationExecutor..ctor(Object reportHandler, IDictionary args)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Microsoft.EntityFrameworkCore.Tools.ReflectionOperationExecutor..ctor(String assembly, String startupAssembly, String projectDir, String dataDirectory, String rootNamespace, String language)
at Microsoft.EntityFrameworkCore.Tools.Commands.ProjectCommandBase.CreateExecutor()
at Microsoft.EntityFrameworkCore.Tools.Commands.DatabaseUpdateCommand.Execute()
at Microsoft.EntityFrameworkCore.Tools.Commands.CommandBase.<>c__DisplayClass0_0.<Configure>b__0()
at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)
Exception has been thrown by the target of an invocation.

а в Powershell фолдере с прожектом:

>dotnet ef database update
Could not execute because the specified command or file was not found.
Possible reasons for this include:
* You misspelled a built-in dotnet command.
* You intended to execute a .NET Core program, but dotnet-ef does not exist.
* You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH. P
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901365
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
то же приложение, работавшее с SqlServer все сделало само
Я уже устал тебе давать ссылки на учебники.
Если ты не вызовешь Migrate(), то само ничего не сделается

Ролг Хупин
* You misspelled a built-in dotnet command.
ты не установил EF CLI
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901371
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
то же приложение, работавшее с SqlServer все сделало само
Я уже устал тебе давать ссылки на учебники.
Если ты не вызовешь Migrate(), то само ничего не сделается

Ролг Хупин
* You misspelled a built-in dotnet command.
ты не установил EF CLI


пытаюсь делать по выданным инструкциям

1. сделал так в студии в PM console

авторPM> dotnet tool install --global dotnet-ef
You can invoke the tool using the following command: dotnet-ef
Tool 'dotnet-ef' (version '3.1.0') was successfully installed.
PM> Update-Database
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.TypeLoadException: Could not load type 'Microsoft.EntityFrameworkCore.Internal.ProductInfo' from assembly 'Microsoft.EntityFrameworkCore, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
at Microsoft.EntityFrameworkCore.Design.OperationExecutor..ctor(Object reportHandler, IDictionary args)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Microsoft.EntityFrameworkCore.Tools.ReflectionOperationExecutor..ctor(String assembly, String startupAssembly, String projectDir, String dataDirectory, String rootNamespace, String language)
at Microsoft.EntityFrameworkCore.Tools.Commands.ProjectCommandBase.CreateExecutor()
at Microsoft.EntityFrameworkCore.Tools.Commands.DatabaseUpdateCommand.Execute()
at Microsoft.EntityFrameworkCore.Tools.Commands.CommandBase.<>c__DisplayClass0_0.<Configure>b__0()
at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)
Exception has been thrown by the target of an invocation.
PM>




Так в PowerShell:

авторPS G:\MyProjects\WebApplication1> dotnet tool install --global dotnet-ef
Tool 'dotnet-ef' is already installed.
PS G:\MyProjects\WebApplication1> dotnet ef database update
Build started...
Build succeeded.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.TypeLoadException: Could not load type 'Microsoft.EntityFrameworkCore.Internal.ProductInfo' from assembly 'Microsoft.EntityFrameworkCore, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
at Microsoft.EntityFrameworkCore.Design.OperationExecutor..ctor(Object reportHandler, IDictionary args)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Microsoft.EntityFrameworkCore.Tools.ReflectionOperationExecutor..ctor(String assembly, String startupAssembly, String projectDir, String dataDirectory, String rootNamespace, String language)
at Microsoft.EntityFrameworkCore.Tools.Commands.ProjectCommandBase.CreateExecutor()
at Microsoft.EntityFrameworkCore.Tools.Commands.DatabaseUpdateCommand.Execute()
at Microsoft.EntityFrameworkCore.Tools.Commands.CommandBase.<>c__DisplayClass0_0.<Configure>b__0()
at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)
Exception has been thrown by the target of an invocation.


Что делаю не так?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901372
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибка по ProductInfo гуглится, нам за тебя еще и ответы почитать?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901373
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
ошибка по ProductInfo гуглится, нам за тебя еще и ответы почитать?


не, сам почитаю, тут такое еще обнаружил:
поставил клиента
>dotnet tool install --global dotnet-ef

Надо было еще выполнить команду
>dotnet add package Microsoft.EntityFrameworkCore.Design

Отработала, пустил, п-ц какой-то

PS G:\MyProjects\WebApplication1> dotnet ef database update

42601: syntax error at or near "["


Build started...
Build succeeded.
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 3.1.0 initialized 'ApplicationDbContext' using provider 'Npgsql.EntityFrameworkCore.PostgreSQL' with options: None
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (11ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT EXISTS (SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace WHERE c.relname='__EFMigrationsHistory');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (28ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "__EFMigrationsHistory" (
"MigrationId" character varying(150) NOT NULL,
"ProductVersion" character varying(32) NOT NULL,
CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY ("MigrationId")
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT EXISTS (SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace WHERE c.relname='__EFMigrationsHistory');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT "MigrationId", "ProductVersion"
FROM "__EFMigrationsHistory"
ORDER BY "MigrationId";
info: Microsoft.EntityFrameworkCore.Migrations[20402]
Applying migration '00000000000000_CreateIdentitySchema'.
Applying migration '00000000000000_CreateIdentitySchema'.
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (43ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetRoles" (
"Id" text NOT NULL,
"Name" character varying(256) NULL,
"NormalizedName" character varying(256) NULL,
"ConcurrencyStamp" text NULL,
CONSTRAINT "PK_AspNetRoles" PRIMARY KEY ("Id")
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (58ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetUsers" (
"Id" text NOT NULL,
"UserName" character varying(256) NULL,
"NormalizedUserName" character varying(256) NULL,
"Email" character varying(256) NULL,
"NormalizedEmail" character varying(256) NULL,
"EmailConfirmed" boolean NOT NULL,
"PasswordHash" text NULL,
"SecurityStamp" text NULL,
"ConcurrencyStamp" text NULL,
"PhoneNumber" text NULL,
"PhoneNumberConfirmed" boolean NOT NULL,
"TwoFactorEnabled" boolean NOT NULL,
"LockoutEnd" timestamp with time zone NULL,
"LockoutEnabled" boolean NOT NULL,
"AccessFailedCount" integer NOT NULL,
CONSTRAINT "PK_AspNetUsers" PRIMARY KEY ("Id")
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (43ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetRoleClaims" (
"Id" integer NOT NULL,
"RoleId" text NOT NULL,
"ClaimType" text NULL,
"ClaimValue" text NULL,
CONSTRAINT "PK_AspNetRoleClaims" PRIMARY KEY ("Id"),
CONSTRAINT "FK_AspNetRoleClaims_AspNetRoles_RoleId" FOREIGN KEY ("RoleId") REFERENCES "AspNetRoles" ("Id") ON DELETE CASCADE
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (48ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetUserClaims" (
"Id" integer NOT NULL,
"UserId" text NOT NULL,
"ClaimType" text NULL,
"ClaimValue" text NULL,
CONSTRAINT "PK_AspNetUserClaims" PRIMARY KEY ("Id"),
CONSTRAINT "FK_AspNetUserClaims_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers" ("Id") ON DELETE CASCADE
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (67ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetUserLogins" (
"LoginProvider" character varying(128) NOT NULL,
"ProviderKey" character varying(128) NOT NULL,
"ProviderDisplayName" text NULL,
"UserId" text NOT NULL,
CONSTRAINT "PK_AspNetUserLogins" PRIMARY KEY ("LoginProvider", "ProviderKey"),
CONSTRAINT "FK_AspNetUserLogins_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers" ("Id") ON DELETE CASCADE
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (60ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetUserRoles" (
"UserId" text NOT NULL,
"RoleId" text NOT NULL,
CONSTRAINT "PK_AspNetUserRoles" PRIMARY KEY ("UserId", "RoleId"),
CONSTRAINT "FK_AspNetUserRoles_AspNetRoles_RoleId" FOREIGN KEY ("RoleId") REFERENCES "AspNetRoles" ("Id") ON DELETE CASCADE,
CONSTRAINT "FK_AspNetUserRoles_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers" ("Id") ON DELETE CASCADE
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (49ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetUserTokens" (
"UserId" text NOT NULL,
"LoginProvider" character varying(128) NOT NULL,
"Name" character varying(128) NOT NULL,
"Value" text NULL,
CONSTRAINT "PK_AspNetUserTokens" PRIMARY KEY ("UserId", "LoginProvider", "Name"),
CONSTRAINT "FK_AspNetUserTokens_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers" ("Id") ON DELETE CASCADE
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (31ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE INDEX "IX_AspNetRoleClaims_RoleId" ON "AspNetRoleClaims" ("RoleId");
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (16ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE UNIQUE INDEX "RoleNameIndex" ON "AspNetRoles" ("NormalizedName") WHERE [NormalizedName] IS NOT NULL;
Failed executing DbCommand (16ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE UNIQUE INDEX "RoleNameIndex" ON "AspNetRoles" ("NormalizedName") WHERE [NormalizedName] IS NOT NULL;
Npgsql.PostgresException (0x80004005): 42601: syntax error at or near "["
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Exception data:
Severity: ERROR
SqlState: 42601
MessageText: syntax error at or near "["
Position: 79
File: scan.l
Line: 1086
Routine: scanner_yyerror
42601: syntax error at or near "["
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901375
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, попробуй удалить миграцию и создать её заново.
Теоретически миграция (если только не пишешь SQL руками) не должна зависеть от СУБД
Ты ведь вот это:
"CREATE UNIQUE INDEX "RoleNameIndex" ON "AspNetRoles" ("NormalizedName") WHERE [NormalizedName] IS NOT NULL;"
не руками писал?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901383
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Хм, попробуй удалить миграцию и создать её заново.
Теоретически миграция (если только не пишешь SQL руками) не должна зависеть от СУБД
Ты ведь вот это:
"CREATE UNIQUE INDEX "RoleNameIndex" ON "AspNetRoles" ("NormalizedName") WHERE [NormalizedName] IS NOT NULL;"
не руками писал?


не, в этом прожекте я хотел обойтись без рукоблудия, как писал выше:
сначала с Sql Server проверил, сработало, потом изменил на PostgreSQL и такая фигня прёт. Я уже бы создал руками эти таблицы, если бы оно дальше работало.

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


какой командой?

Когда на странице выдает Apply кнопку, жму , получаю такую ошибку.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901396
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
какой командой?
Здрасьте. А остальные команды, которые ты вводишь, ты откуда берешь?

https://docs.microsoft.com/ru-ru/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901397
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Shocker.Pro
пропущено...
попробуй для начала пересоздать миграцию


какой командой?

Когда на странице выдает Apply кнопку, жму , получаю такую ошибку.


сделал
>dotnet ef database update

Начало работать и потом выдало ту же ошибку

авторFailed executing DbCommand (12ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE UNIQUE INDEX "RoleNameIndex" ON "AspNetRoles" ("NormalizedName") WHERE [NormalizedName] IS NOT NULL;


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

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

Ты похоже миграцию SQL Server-а пытаешься накатить на посгресс. Тебе надо их выкосить из проекта (папка Migrations) потом сгенерить заново для посгресса и накатить их. Но, пока ты еще не сильно в этом разобрался, то просто снеси имеющуюся БД, снеси на всякий случай миграции, и в коде вставь вызов EnsureDatabaseCreated() для контекста.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901409
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Ролг Хупин,

Ты похоже миграцию SQL Server-а пытаешься накатить на посгресс. Тебе надо их выкосить из проекта (папка Migrations) потом сгенерить заново для посгресса и накатить их. Но, пока ты еще не сильно в этом разобрался, то просто снеси имеющуюся БД, снеси на всякий случай миграции, и в коде вставь вызов EnsureDatabaseCreated() для контекста.


Такой папки нет

Кстати, у них в коде

Код: c#
1.
2.
3.
4.
                    b.HasIndex("NormalizedName")
                        .IsUnique()
                        .HasName("RoleNameIndex")
                        .HasFilter("[NormalizedName] IS NOT NULL");
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901411
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Ты похоже миграцию SQL Server-а пытаешься накатить на посгресс.
Миграция по идее должна быть универсальна, если сам там ничего не менял. Она же через билдер строится.

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

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

это ты так WinForms приложение на веб переводишь?


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


1. был не прав, нашел в прожекте фолдер Data\Migration, там были файлы, может быть и похоже остались от SQL Server, грохнул весь фолдер

2. сделал в CMD
> dotnet ef migrations add mig01
Build started...
Build succeeded.
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 3.1.0 initialized 'ApplicationDbContext' using provider 'Npgsql.EntityFrameworkCore.PostgreSQL' with options: None
Done. To undo this action, use 'ef migrations remove'

Появился фолдер Migrations с 3 файлами

3. Запустил приложение, на первом же логине получил экран с кнопкой

A database operation failed while processing the request.
PostgresException: 42P01: relation "AspNetUsers" does not exist
Applying existing migrations for ApplicationDbContext may resolve this issue
There are migrations for ApplicationDbContext that have not been applied to the database

20191212080541_mig01
Apply Migrations

In Visual Studio, you can use the Package Manager Console to apply pending migrations to the database:

PM> Update-Database
Alternatively, you can apply pending migrations from a command prompt at your project directory:

> dotnet ef database update




Пишут, что это один из вариантов, нажал Apply Migrations,
"An error occurred applying migrations, try applying them from the command line"

4.Сделал в CMD:


> dotnet ef database update


=================
."SecurityStamp", a."TwoFactorEnabled", a."UserName"
FROM "AspNetUsers" AS a
WHERE a."NormalizedUserName" = @__normalizedUserName_0
LIMIT 1
fail: Microsoft.EntityFrameworkCore.Query[10100]
An exception occurred while iterating over the results of a query for cont
ext type 'WebApplication1.Data.ApplicationDbContext'.
Npgsql.PostgresException (0x80004005): 42P01: relation "AspNetUsers" does
not exist
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__Rea
dMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown -
--
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__Rea
dMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown -
--
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsumin
g)
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Bo
olean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavi
or, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReade
rAsync(RelationalCommandParameterObject parameterObject, CancellationToken cance
llationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReade
rAsync(RelationalCommandParameterObject parameterObject, CancellationToken cance
llationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReade
rAsync(RelationalCommandParameterObject parameterObject, CancellationToken cance
llationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.As
yncEnumerator.InitializeReaderAsync(DbContext _, Boolean result, CancellationTok
en cancellationToken)
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecuti
onStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 v
erifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.As
yncEnumerator.MoveNextAsync()
Exception data:
Severity: ERROR
SqlState: 42P01
MessageText: relation "AspNetUsers" does not exist
Position: 294
File: parse_relation.c
Line: 1159
Routine: parserOpenTable
Npgsql.PostgresException (0x80004005): 42P01: relation "AspNetUsers" does not ex
ist
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean
async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, Ca
ncellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync
(RelationalCommandParameterObject parameterObject, CancellationToken cancellatio
nToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync
(RelationalCommandParameterObject parameterObject, CancellationToken cancellatio
nToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync
(RelationalCommandParameterObject parameterObject, CancellationToken cancellatio
nToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.AsyncEnu
merator.InitializeReaderAsync(DbContext _, Boolean result, CancellationToken can
cellationToken)
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStra
tegy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifyS
ucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.AsyncEnu
merator.MoveNextAsync()
Exception data:
Severity: ERROR
SqlState: 42P01
MessageText: relation "AspNetUsers" does not exist
Position: 294
File: parse_relation.c
Line: 1159
Routine: parserOpenTable
info: Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker[4]
Executed page /Account/Login in 2246.33ms
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint '/Account/Login'
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (14ms) [Parameters=[], CommandType='Text', CommandTimeo
ut='30']
SELECT EXISTS (SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_name
space n ON n.oid=c.relnamespace WHERE c.relname='__EFMigrationsHistory');
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 2885.6528ms 500 text/html; charset=utf-8
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/1.1 POST https://localhost:5001/ApplyDatabaseMigrati
ons application/x-www-form-urlencoded 135
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 3.1.0 initialized 'ApplicationDbContext' using provi
der 'Npgsql.EntityFrameworkCore.PostgreSQL' with options: None
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
SELECT EXISTS (SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_name
space n ON n.oid=c.relnamespace WHERE c.relname='__EFMigrationsHistory');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (26ms) [Parameters=[], CommandType='Text', CommandTimeo
ut='30']
CREATE TABLE "__EFMigrationsHistory" (
"MigrationId" character varying(150) NOT NULL,
"ProductVersion" character varying(32) NOT NULL,
CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY ("MigrationId")
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
SELECT EXISTS (SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_name
space n ON n.oid=c.relnamespace WHERE c.relname='__EFMigrationsHistory');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
SELECT "MigrationId", "ProductVersion"
FROM "__EFMigrationsHistory"
ORDER BY "MigrationId";
info: Microsoft.EntityFrameworkCore.Migrations[20402]
Applying migration '20191212080541_mig01'.
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (34ms) [Parameters=[], CommandType='Text', CommandTimeo
ut='30']
CREATE TABLE "AspNetRoles" (
"Id" text NOT NULL,
"Name" character varying(256) NULL,
"NormalizedName" character varying(256) NULL,
"ConcurrencyStamp" text NULL,
CONSTRAINT "PK_AspNetRoles" PRIMARY KEY ("Id")
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (23ms) [Parameters=[], CommandType='Text', CommandTimeo
ut='30']
CREATE TABLE "AspNetUsers" (
"Id" text NOT NULL,
"UserName" character varying(256) NULL,
"NormalizedUserName" character varying(256) NULL,
"Email" character varying(256) NULL,
"NormalizedEmail" character varying(256) NULL,
"EmailConfirmed" boolean NOT NULL,
"PasswordHash" text NULL,
"SecurityStamp" text NULL,
"ConcurrencyStamp" text NULL,
"PhoneNumber" text NULL,
"PhoneNumberConfirmed" boolean NOT NULL,
"TwoFactorEnabled" boolean NOT NULL,
"LockoutEnd" timestamp with time zone NULL,
"LockoutEnabled" boolean NOT NULL,
"AccessFailedCount" integer NOT NULL,
CONSTRAINT "PK_AspNetUsers" PRIMARY KEY ("Id")
);
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (220ms) [Parameters=[], CommandType='Text', Com
mandTimeout='30']
CREATE TABLE "AspNetRoleClaims" (
"Id" integer NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"RoleId" text NOT NULL,
"ClaimType" text NULL,
"ClaimValue" text NULL,
CONSTRAINT "PK_AspNetRoleClaims" PRIMARY KEY ("Id"),
CONSTRAINT "FK_AspNetRoleClaims_AspNetRoles_RoleId" FOREIGN KEY ("Role
Id") REFERENCES "AspNetRoles" ("Id") ON DELETE CASCADE
);
fail: Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMid
dleware[7]
An error occurred while applying the migrations for 'WebApplication1.Data.
ApplicationDbContext'. See InnerException for details:
Npgsql.PostgresException (0x80004005): 42601: syntax error at or near "GENERATED
"
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean
async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken canc
ellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(Re
lationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(
IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor
.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connecti
on)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String
targetMigration)
at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(D
atabaseFacade databaseFacade)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMid
dleware.Invoke(HttpContext context)
Exception data:
Severity: ERROR
SqlState: 42601
MessageText: syntax error at or near "GENERATED"
Position: 62
File: scan.l
Line: 1086
Routine: scanner_yyerror
fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
System.InvalidOperationException: An error occurred while applying the migration
s for 'WebApplication1.Data.ApplicationDbContext'. See InnerException for detail
s.Npgsql.PostgresException (0x80004005): 42601: syntax error at or near "GENERAT
ED"
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean
async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken canc
ellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(Re
lationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(
IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor
.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connecti
on)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String
targetMigration)
at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(D
atabaseFacade databaseFacade)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMid
dleware.Invoke(HttpContext context)
Exception data:
Severity: ERROR
SqlState: 42601
MessageText: syntax error at or near "GENERATED"
Position: 62
File: scan.l
Line: 1086
Routine: scanner_yyerror
---> Npgsql.PostgresException (0x80004005): 42601: syntax error at or near "GEN
ERATED"
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessa
geLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean
async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken canc
ellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(Re
lationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(
IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor
.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connecti
on)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String
targetMigration)
at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(D
atabaseFacade databaseFacade)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMid
dleware.Invoke(HttpContext context)
Exception data:
Severity: ERROR
SqlState: 42601
MessageText: syntax error at or near "GENERATED"
Position: 62
File: scan.l
Line: 1086
Routine: scanner_yyerror
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMid
dleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMidd
leware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMidd
leware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(H
ttpContext context)
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 879.2697ms 500 text/plain



Ну, я всё понимаю, но тут видно, что кусок скрипта - постгресовский (character varying и т.д.) и ошибка на куске, который постгрес (9.*) не понимает

CREATE TABLE "AspNetRoleClaims" (
"Id" integer NOT NULL GENERATED BY DEFAULT AS IDENTITY,


Что не так в этот раз, коллеги?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901760
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
syntax error at or near "GENERATED"

тут явная проблема постгрес-адаптера для EF вырисовывается...
свежесть версии адаптера проверял? Не бета? ошибку гуглил? issues у них в репозитории смотрел?

Может версия постгрес-сервера? Я в постгресе не бум-бум
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901810
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
syntax error at or near "GENERATED"

тут явная проблема постгрес-адаптера для EF вырисовывается...
свежесть версии адаптера проверял? Не бета? ошибку гуглил? issues у них в репозитории смотрел?

Может версия постгрес-сервера? Я в постгресе не бум-бум


Да там скорее сервер, видимо, да, у меня 9.6, а эти идентити с версии 10.
Но тоже странно, ограничение на версию не написано.
Хорошо, я сейчас проделаю это на 11 версии, а как быть, если приложение должно работать с 9.6 в AWS?
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901811
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
skyANA
Ролг Хупин,

это ты так WinForms приложение на веб переводишь?


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

А WinForms клиент не использует аутентификацию и авторизацию? И с базой он уже работает.
Большая проблема взять код из него? К чему все эти танцы с бубном?
...
Рейтинг: 0 / 0
Как в 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
Как в cshtml сделать редирект?
    #39901912
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
пропущено...


в ходе обсуждения здесь мне настоятельно рекомендовали.
Автор до сих пор не понял разницу между EF и Microsoft.AspNetCore.Identity.EntityFrameworkCore/


даладно, я понимаю разницу между EF и EF в Microsoft.AspNetCore.Identity.
Я EF не использую, не нравятся принципы построения и избыточность.
Но для использования Microsoft.AspNetCore.Identity с PostgreSQL надо использовать, вариантов нет.
Ну а там и Npgsql.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39901915
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Ролг Хупин,

вот: Авторизация (а то же ты не любитель сам искать нужную информацию)
Код: 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 будут переадресованы на форму входа в приложение.

Обрати внимание на: "будут переадресованы на форму входа в приложение".
То есть не надо самому никакие редиректы прописывать, а потом им удивляться.


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

вот: Авторизация (а то же ты не любитель сам искать нужную информацию)
Код: 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 будут переадресованы на форму входа в приложение.

Обрати внимание на: "будут переадресованы на форму входа в приложение".
То есть не надо самому никакие редиректы прописывать, а потом им удивляться.


Да, [Authorize] я понимаю. Интересовал как раз обратный ход - со страницы Логин после удачного логина на вызвавшую.

Не увидел, где тебя это интересовало. В первом сообщении наоборот:
Ролг Хупин
Хотелось бы сделать так: если вызывается страница с незалогиненным юзером - сделать редирект на
Login.cshtml

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


EF не обязателен.
...
Рейтинг: 0 / 0
Как в cshtml сделать редирект?
    #39902060
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Но для использования Microsoft.AspNetCore.Identity с PostgreSQL надо использовать, вариантов нет.
Ну а там и Npgsql.

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


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