Как реализовать проверку подлинности на основе утверждений с использованием 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