如何在ASP.NET Web表单中按属性类创建自定义授权属性

时间:2018-10-22 14:15:21

标签: asp.net webforms authorization

我想为每个页面的属性使用授权。例如,我有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 Web表单中最适合授权吗?

0 个答案:

没有答案