#c# #asp.net-web-api #asp.net-web-api2
#c# #asp.net-web-api #asp.net-web-api2
Вопрос:
Этот фильтр проверяет правильность входящих аргументов. Он не выполняет проверки безопасности, такие как проверка токенов сеанса.
Я бы хотел сохранить любую существующую логику безопасности / авторизации и просто добавить немного для проверки ввода.
public class ValidateMachineIdTokenAttribute : AuthorizeAttribute
{
protected override bool IsAuthorized(HttpActionContext actionContext)
{
var baseAuthorized = base.IsAuthorized(actionContext); // <-- always false
CheckInput(actionContext); // throws exception if no good
return true;
}
...
}
Я мог бы проигнорировать base.IsAuthorized
, но, как я уже сказал, я хочу сохранить любую безопасность.
Комментарии:
1. При использовании вашего атрибута установлены ли какие-либо роли или пользователи? Ваш пользователь вошел в систему? При отсутствии пользователей или ролей, указанных в использовании атрибутов, атрибут base проверяет только, вошли ли они в систему в данный момент.
Ответ №1:
Если вы не хотите, чтобы это влияло на авторизацию, вам следует вместо этого использовать ActionFilterAttribute