Ich habe Probleme herauszufinden, wie ein Autorisierungsfilter in Web-API mit IAuthorizationFilter von System.Web.Http.Filters zu implementieren.Richtig implementieren IAuthorizationFilter in Web-API
Dies ist ein einfacher Filter I mit 403 verbotenen Reaktion auf alle Nicht-https-Anfragen zu reagieren, schrieb:
public class HttpsFilter : IAuthorizationFilter {
public bool AllowMultiple {
get {
return false;
}
}
public Task<HttpResponseMessage> ExecuteAuthorizationFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func<Task<HttpResponseMessage>> continuation) {
var request = actionContext.Request;
if (request.RequestUri.Scheme != Uri.UriSchemeHttps) {
HttpResponseMessage response = request.CreateResponse(HttpStatusCode.Forbidden);
response.Content = new StringContent("<h1>HTTPS Required</h1>", Encoding.UTF8, "text/html");
actionContext.Response = response;
return new Task<HttpResponseMessage>(delegate() {
return response;
});
}
else
return continuation();
}
}
Was ich geschrieben habe bisher läuft, aber wenn ich versuche, die api über regelmäßige zugreifen http, es hängt einfach und ich bekomme nie eine Antwort.
http://aspnet.codeplex.com/sourcecontrol/latest#Samples/WebApi/BasicAuthentication/ReadMe.txt – Ali