Как создать пользовательский атрибут Authorize Attribute by Attribute в веб-формах ASP.NET - PullRequest
0 голосов
/ 22 октября 2018

Я хочу использовать авторизацию с Атрибутом для каждой страницы.Например, у меня есть страница 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?

...