Мое понимание ASP.NET MVC является то, что для разрешения я должен использовать что-то вроде -Пользовательские разрешения в Web.API
public class IPAuthorize : AuthorizeAttribute {
protected override bool AuthorizeCore(HttpContextBase httpContext) {
//figure out if the ip is authorized
//and return true or false
}
Но в Web API, нет AuthorizeCore(..)
.
Существует OnAuthorization(..)
, а общий совет для MVC - не использовать OnAuthorization(..)
.
Что следует использовать для пользовательских авторизаций в веб-API?
+1 Это правильный ответ использования System.Web.Http.AuthorizeAttribute. Единственная причина неохотно использовать actionfilter для авторизации - это если вам нужен доступ к десериализованному телу сообщения, чтобы принять решение о авторизации, но это редко либо необходимо, либо хорошая практика. –
Если я реализую авторизацию ip-адреса, наследующую от AuthorizeAttribute, нормально ли переопределять OnAuthorization (..) - я читал это в MVC, о котором вы посоветовали не делать этого. – tom
Вместо того, чтобы переопределять OnAuthorization, вероятно, лучше переопределить IsAuthorized и/или HandleUnauthorizedRequest. Они выполняют большую часть фактической работы. –