Как я могу реализовать пользовательскую аутентификацию/авторизацию в asp.net MVC без Identity?

Я работаю над asp.net MVC 5-решением, где теперь мне нужно реализовать аутентификацию и авторизацию. Решение имеет внешнюю службу, управляющую "тяжелой работой", которая будет принимать имя пользователя и пароль для каждого запроса, а при успешной проверке отправьте обратно токен с разрешениями (ролями) пользователей, которые должны быть сопоставлены с атрибутами в контроллере.

Запрос на внешнюю службу должен быть сделан по каждому запросу моего решения. Как я могу реализовать это простым способом в моем exp-asp.net MVC 5-решении? Я посмотрел на Identity и Owin, но они чувствуют себя слишком раздутыми за то, что Im пытается достичь. Я также нашел некоторую информацию о Forms auth, но, похоже, он устарел?

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

Пользователь запросит контроллер. Контроллер отмечен атрибутом "Требовать (Роли =" ИТ ")". Я реализую IauthenticationFilter и вызываю свою службу в OnAuthentication для проверки запроса пользователей. По возвращении я проверю, что пользователь на самом деле тот, кого он говорит, а также если ему разрешено войти в указанное действие на указанном контроллере.

Любой ввод оценивается, так как мне трудно найти надежную информацию о том, как реализовать пользовательское решение auth. Есть ли лучшая практика?

Спасибо!

0
источник поделиться
1 ответ

MVC основывается на интерфейсах ASP.NET IPrincipal и IIdentity. Если вы реализуете эти интерфейсы, вы можете использовать существующие атрибуты атрибута [Authorize]/[AllowAnonymous] MVC и только расширять его, если вам нужна какая-то функциональность, [AllowAnonymous] от пользователей/ролей.

Я не буду повторять реализацию здесь - есть несколько сообщений о том, как правильно реализовать эти интерфейсы (которые должны быть установлены в событии Application_PostAuthenticateRequest в ASP.NET/MVC).

+2
источник

Связанные вопросы


Похожие вопросы

Посмотрите другие вопросы по меткам или Задайте вопрос