У меня есть веб-приложение с базовой страницей.
Каждая страница должна наследоваться от этой базовой страницы, поскольку она содержит свойства, которые им всем нужны, а также права входа в систему.
Моя базовая страница имеет некоторые свойства, например: IsRole1, IsRole2, currentUserID, Role1Allowed, Role2Allowed.
В начале каждой страницы я устанавливаю свойства "Role1Allowed" и "Role2Allowed"
Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Role1Allowed = True
Role2Allowed= False
End Sub
Затем базовая страница решает, нужно ли перенаправить пользователя.
'Пример кода, поэтому не совсем то, что будет, ошибка дает идею
Protected Overridable Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Role1Allowed And Not Role1 Then
'Redirect somewhere
End If
End Sub
Страница должна затем переопределить эту загрузку страниц, если им нужно что-то еще в ней, но убедитесь, что они сначала вызывают базовую загрузку страниц.
Protected Overrides Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyBase.Page_Load(sender, e)
If Not IsPostBack Then
BindGrid()
End If
End Sub
Другие свойства (IsRole1, IsRole, currentUserID) также доступны на странице, поэтому можно решить, нужно ли выполнять определенные действия в зависимости от пользователя.
(надеюсь, это имеет смысл)
Хорошо, у меня есть 2 вопроса
- Должна ли эта функциональность быть на базовой странице или как-то на главной странице, и если да, то как мне получить доступ ко всем свойствам, если бы она была?
- Поскольку над этим проектом работают несколько человек, и они создают страницы, некоторые из них забывают наследовать эту базовую страницу или вызывают базовую загрузку страницы при переопределении.
Есть ли способ заставить их сделать это?