ASP.NET несколько уровней входа в систему - OAuth & Forms - PullRequest
1 голос
/ 05 апреля 2011

Я собираюсь присоединиться к тому, что должно быть десятками тысяч других разработчиков, добавив логин OAuth (логин Facebook) к существующему сайту ASP.NET, который в настоящее время использует аутентификацию по формам.

К сожалению, мы не можем предоставить полный доступ к сайту пользователям, которые использовали OAuth для аутентификации.

Я хочу, чтобы два уровня доступа были доступны пользователям, в зависимости от того, как они аутентифицировались. Если они вошли в систему через OAuth, то у них будет ограниченный доступ, если они прошли проверку подлинности с помощью форм, то у них будет полный доступ.

Существует ли какая-либо встроенная система в ASP.NET Membership, которая допускает несколько уровней аутентификации?

Если нет, может ли кто-нибудь предоставить какие-либо советы или ссылки на советы о том, как это реализовать?

Я думаю, что на самом базовом уровне все, что нужно, - это глобально доступный bool, который устанавливается для каждого входа в систему и обозначает, вошел ли пользователь в OAuth или нет. Если бы я мог установить User.Identity.AuthenticationType при входе в систему, это, вероятно, помогло бы. Я, конечно, хотел бы избежать боли создания целого нового провайдера нестандартного членства.

1 Ответ

0 голосов
/ 28 января 2013

Разве это не может быть сделано с помощью ролей? Например, вы можете назначить одну роль, называемую «Собственная», для пользователей, вошедших из формы входа в приложение, и роль «Аутсайдеры» от людей, вошедших в систему из других систем. Ваши страницы тогда сделают части видимыми / невидимыми, в зависимости от роли пользователя, вошедшего в систему.

...