Нет AccountController для Asp.net Core 2.1 - PullRequest
0 голосов
/ 02 июля 2018

Я понимаю, что в ядре asp.net 2.1 Идентичность смещена, но ее можно добавить в решение, если вы добавите их в качестве элемента лесов.

Добавляет все библиотеки классов бритвы для всех страниц.

Однако я хочу использовать старый способ AccountController, при котором клиент (мобильный или сетевой) может публиковать сообщения в API, связанном с учетной записью.

Какие у меня есть варианты для того, чтобы вернуться к старому или подобному. так что я могу использовать API от клиентов

1 Ответ

0 голосов
/ 03 июля 2018

К сожалению, его больше не существует. Лично я был очень взволнован этим изменением, а также бесконечным нажатием команды Razor Pages на всех, которые, честно говоря, следовало бы оставить на свалке истории </rant>.

Что я сделал лично, так это добавил скаффолд, а затем создал свои собственные контроллеры, перетасовывая и переписывая код Razor Pages в традиционные контроллеры и представления в стиле MVC. Это был не приятный опыт, но я не знаю другого пути, если вы хотите так.

Однако следует отметить, что расширение AddDefaultIdentity фактически добавляет пользовательский интерфейс по умолчанию, как если бы вы добавили его в свой проект. Другими словами, даже если вы переместите все в контроллеры и представления и удалите все элементы из лесов, маршруты Razor Pages будут по-прежнему иметь приоритет. Еще более прискорбно, что хорошая альтернатива для добавления AddDefaultIdentity отсутствует. Это то, что вам нужно вместо этого:

services.AddIdentityCore<ApplicationUser>(o =>
{
    // Identity config
})
.AddSignInManager()
.AddDefaultTokenProviders()
.AddEntityFrameworkStores<YourContext>();

services.ConfigureApplicationCookie(o =>
{
    o.LoginPath = "/signin";
    o.LogoutPath = "/signout";
    o.AccessDeniedPath = "/signin";
    o.ReturnUrlParameter = "returnUrl";
});

Очевидно, что в последнем случае вы изменили бы URL-адреса на собственные маршруты приложений.

...