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

StackOverflow https://stackoverflow.com/questions/274465

Вопрос

У меня есть кое-какой вопрос:

Как создать веб-приложение на основе ролей?Например, на форумах есть много типов пользователей, администратор, модератор и т.д...хранятся ли роли этих типов пользователей в базе данных или web.config?И когда пользователь входит на наш сайт, как управлять ролями этих пользователей?Короче говоря, я хочу узнать об авторизации и аутентификации.

Спасибо..

Это было полезно?

Решение

@Мавера:

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

TblUsers:
-----------------------------------------------------------------
| UserID (PK) | UserName | HashedPassword | PermissionLevel (FK)|
|---------------------------------------------------------------|
|     1       | BobTables| adfafs2312     |         2           |
-----------------------------------------------------------------

TblPermissions
-------------------------------------
|  PermissionID (PK) | Description   |
--------------------------------------
|         1          |     User      |
|         2          |   SuperUser   |
|         3          |     Admin     |
--------------------------------------

Вы можете добавить 3-ю таблицу, которая содержит отношение "Один ко многим" между TblPermissions, которое раскрывает фактические возможности, которые пользователю может быть разрешено выполнять.

Запрос пользователя был бы таким же простым, как:

SELECT TblUser.Username, TblPermissions.Description 
    FROM TblUsers, TblPermissions 
    WHERE TblUser.UserID = @UserID 
    AND TblUser.PermissionLevel = TblPermission.PermissionID;

Создайте пользовательский класс для инкапсуляции этой информации и сохраните ее в ASP.NET сеансе, когда они войдут в систему.

Другие советы

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

В таких ситуациях я создал свою собственную схему аутентификации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top