Я хочу использовать авторизацию с Атрибутом для каждой страницы.Например, у меня есть страница CardOperation
, и я хочу, чтобы только администратор мог использовать эту страницу, которую я создал AuthorizeRolesAttribute
следующим образом
[AttributeUsage(AttributeTargets.Class)]
public class AuthorizeRolesAttribute : Attribute
{
public AuthorizeRolesAttribute(params UserRole[] roles)
{
if (!roles.Contains(UserSession.User.Role))
{
UserSession.MessageTypeId = Enums.SystemMessageType.Unauthorized;
HttpContext.Current.Response.Redirect("Message.aspx", false);
}
}
}
И я хочу использовать как
[AuthorizeRoles(UserRole.Administrator)]
public partial class CardOperation : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
...
Таким образом, есть две проблемы.Сначала этот конструктор атрибута работает после Page_Load
.Вторая проблема заключается в том, что этот конструктор атрибута работает во время первого запроса, но затем (второй запрос) не работает.Как решить эту проблему?этот способ лучше всего подходит для авторизации в веб-формах asp.net?