В asp.net веб-приложении Я ограничил действия пользователей в зависимости от их ролей вроде как следоватьИспользования ролей в ASP.NET
Я создал три таблицы в базе данных
Таблицы
Таблицы: пользователи
UserID Username Password
1 Bob password1
2 Scott password2
3 Jisun password3
4 Sam password4
5 John password5
Таблица: Группы
GroupID Name
1 Administrators
2 Clerk
3 Manager
4 Cashier
Таблица: Роли
UserID GroupID
1 1
2 2
2 3
3 4
4 3
4 4
В Global.asax файл я написал следующее
Sub Application_AuthenticateRequest(sender As Object, e As EventArgs)
If Request.IsAuthenticated Then
'Determine this user's roles
Dim reader As SqlDataReader = _
SqlHelper.ExecuteReader(connection string, _
CommandType.StoredProcedure, "rolesForUser", _
New SqlParameter("@Username", User.Identity.Name))
' Create an array of role names
Dim roleList As New ArrayList
Do While reader.Read()
roleList.Add(reader("Name"))
Loop
'Convert the roleList ArrayList to a String array
Dim roleListArray As String() = roleList.ToArray(GetType(String))
'Add the roles to the User Principal
HttpContext.Current.User = _
New GenericPrincipal(User.Identity, roleListArray)
End If
End Sub
И в asp.net файл кода следующий код
If User.IsInRole("Administrator") then
' Display sensitive material
ElseIf User.IsInRole("Clerk") then
' Display moderately sensitive material
Else
' Display only bland material
End If
, как теперь он работает нормально. Теперь новое требование привлекло внимание, чтобы позволить клерку получить доступ к некоторым (но не всем) функциям, выполняемым администратором.
Нужно ли мне изменить исходный код для обеспечения выше нового требования?
Нужно ли делать то же самое снова и снова, когда такое требование возникает в будущем?
или любой другой способ, я могу сделать, пожалуйста, предложите мне.
Заголовок должен быть вопрос а не вопрос имя искателя – ckv