Как реализовать проверку подлинности на основе утверждений с использованием Identity 2.0 в Asp.net MVC

Я работаю над приложением Asp.net Mvc, которое использует удостоверение 2 для аутентификации и авторизации пользователей, но, похоже, мне нужно больше возможностей, чем на основе ролей, поэтому я хочу изменить свой метод и использовать метод на основе утверждений для создания приложения.

Обновление. Предположим, я хочу установить права доступа для определенного пользователя для доступа к определенному действию.

но проблема в том, что нечему учиться, я имею в виду, я знаю, что такое претензия, но я не знаю, как реализовать ее и создавать пользователей и вещи.

Мне интересно, почему нет ничего, чтобы узнать, как реализовать на основе утверждений там! вот почему я задал этот вопрос.

Мне нужно что-то вроде готового проекта или пошаговое руководство. Есть ли что-нибудь, чтобы научить обращаться с претензиями?

1 ответ

Пожалуйста, ознакомьтесь с правилами в Asp.Net Core.

В Policiy вы можете использовать Претензии + Роли + все, что захотите. Все это во встроенном asp.net.

Вот официальная ссылка:

https://docs.microsoft.com/en-us/aspnet/core/security/authorization/claims https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies

Если вы не используете.Net Core, вам понадобится пользовательская реализация, такая как этот фильтр авторизации.

public class ClaimsAuthorizeAttribute : AuthorizeAttribute
{
    private string claimType;
    private string claimValue;
    public ClaimsAuthorizeAttribute(string type, string value)
    {
        this.claimType = type;
        this.claimValue = value;
    }
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        var user = filterContext.HttpContext.User as ClaimsPrincipal;
        if (user != null && user.HasClaim(claimType, claimValue))
        {
            base.OnAuthorization(filterContext);
        }
        else
        {
            base.HandleUnauthorizedRequest(filterContext);
        }
    }
}

Код извлечен из версии утверждений MVC5 атрибута Authorize

Другие вопросы по тегам