Пользовательская авторизация с таблицей возможностей в MVC 5 - PullRequest
0 голосов
/ 01 октября 2018

Я хочу знать, возможно ли создать собственную аутентификацию - авторизацию, расширив существующую аутентификацию с помощью MVC 5 в C #.По сути, я хочу иметь возможность разрешить доступ к методам или целым контроллерам, намекая на возможности, которые вы обычно делаете с ролями:

public class User : Controller
{
    // POST: Users/Create
    [Authorize(Capabilities= "CreateUsers")]
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(FormCollection form)
    {
    }
}

Я не хочу использовать роли ([Authorize(Roles = "Administrator")]), потому чтомои пользователи будут иметь возможности.У меня уже есть пользовательские таблицы в моей базе данных для пользователей, возможностей и CapabilityUser.

1 Ответ

0 голосов
/ 01 октября 2018
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class MyAuthorizeAttribute : AuthorizeAttribute
{
    public string Capabilities { get; set; }

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        // Check capablities here
    }

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        // Decide what to do with unauthorized requests
    }
}

и затем используйте его как

[MyAuthorize (Capabilities = "CreateUsers")]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...