«Управление ролями» и «Управление пользователями» в ASP.NET - PullRequest
0 голосов
/ 17 июня 2011

Вопрос № 1

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

Например, допустим, я создал роль под названием «Продажи». Я устанавливаю разрешение на роль, что могут делать продавцы. Теперь я хочу проверить индивидуального пользователя. Например, если это «Джон», я хочу показать ему записи, которые он только создал. Если он Питер, я хочу показать ему только те записи, которые он создал, а не Джон или другие продавцы.

Есть ли в ASP.NET вещь, называемая «Управление пользователями», которую мы можем использовать? Если нет, то мы должны создать его сами, и я считаю, что интеграция с ASP.NET «Управление ролями» не будет такой гладкой.


Вопрос № 2.

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

Ответы [ 4 ]

1 голос
/ 17 июня 2011

См. Свойства профиля ASP.NET .

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

1 голос
/ 17 июня 2011

Ваш Q1 на самом деле не относится к управлению ролями и пользователями (т.е. авторизациям) на данный момент.Речь идет об отслеживании аудита в вашем приложении.

И способ, которым вы это делаете, заключается в том, что вы фиксируете идентификатор пользователя, который создал соответствующую запись с записью, чтобы позже вы могли фильтровать по этому идентификатору.

Структура псевдобазы данных

Table Sales
    Field...
    Field...
    Field...
    CreatedByUser int not null, -- Populate this on creation and never change it again
    ModifiedByUser int not null - populate this on every row update including insert
0 голосов
/ 17 июня 2011

1) Если вы хотите фильтровать записи по создаваемому пользователю, вам необходимо записать в свою таблицу идентификатор пользователя, который создал запись. Вы можете получить доступ к имени текущего пользователя через User.Identity.Name и его ID (зависит от поставщика) через User.ProviderUserKey.

2) Сессии создаются автоматически в ASP.NET, и при условии, что у вас есть правильно настроенный MembershipProvider, вы можете получить всю необходимую информацию о пользователе, используя объект User, как показано выше.

Похоже, вы немного не знакомы с возможностями членства и ролей ASP.NET, потому что они на самом деле настроены достаточно хорошо для выполнения того, что вы описываете. Я бы порекомендовал проверить эту серию уроков:

http://www.4guysfromrolla.com/articles/120705-1.aspx

0 голосов
/ 17 июня 2011

Вы говорите об аутентификации и авторизации.Для вопроса 1 вы реализуете пользовательский поставщик авторизации, который разрешает управление на уровне пользователя http://msdn.microsoft.com/en-us/library/aa479048.aspx Для вопроса 2, как только вы вошли в систему и прошли проверку подлинности, сеанс содержит объект userprinciple, в котором автоматически содержится информация.

...