Как я могу реализовать авторизацию на основе разрешений в ASP.NET?

Я работаю с приложением ASP.NET (не использующим MVC) и мне нужна схема авторизации, основанная на разрешении "пользователь-пользователь-разрешение", в которой страницы и/или методы могут требовать специального разрешения, которое они требуют (вместо того, какая роль принадлежит пользователю). Есть ли способ расширить аутентификацию форм (или что-то построить), чтобы решить эту проблему?

Если возможно, я хотел бы иметь возможность использовать атрибуты:

[RequirePermission("UserEdit")]
public partial class EditUser : System.Web.UI.Page
{
}

Возможно, даже для методов:

public class MyClass
{
    ...
    [RequirePermission("UserEdit")]
    public void Save()
    {
        ...
    }
}

Возможно ли это?

Я нашел эту страницу, которая предложила использовать роли для разрешений:

[Authorize(Roles = "UserEdit")]
public partial class EditUser : System.Web.UI.Page
{
}

Я не очень люблю это решение, но это также был бы возможный способ решить проблему, но что мне нужно сделать, чтобы оно заработало?

10
задан Hunterwood 31 August 2011 в 14:30
поделиться