我使用Asp.net web APIs爲客戶端(iphone,android,mac os,web,windows,...)提供apis。我想實現一些更安全的API,這可以防止其他人瞭解鏈接中的參數(以防他們破解鏈接)如何在Asp.Net Web API上實現Https/SSL連接?
我的問題是:我可以使用Https/SSL進行此操作嗎?它足夠安全嗎?如果是的話,我應該在客戶端安裝任何東西來實現這一點?
謝謝
我使用Asp.net web APIs爲客戶端(iphone,android,mac os,web,windows,...)提供apis。我想實現一些更安全的API,這可以防止其他人瞭解鏈接中的參數(以防他們破解鏈接)如何在Asp.Net Web API上實現Https/SSL連接?
我的問題是:我可以使用Https/SSL進行此操作嗎?它足夠安全嗎?如果是的話,我應該在客戶端安裝任何東西來實現這一點?
謝謝
這取決於您要在哪裏託管ASP.NET Web API應用程序。如果您要在IIS下託管它,除了通過IIS配置SSL之外,您無需執行任何其他特殊操作。
你應該做的一件事IMO就是通過你的應用強制HTTPS。你可以用不同的方式(如IIS URL重定向模塊等)實現這一點,但你也可以做到這一點,在同一個消息處理應用程序級:
public class RequireHttpsMessageHandler : DelegatingHandler {
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) {
if (request.RequestUri.Scheme != Uri.UriSchemeHttps) {
var forbiddenResponse = request.CreateResponse(HttpStatusCode.Forbidden);
forbiddenResponse.ReasonPhrase = "SSL Required";
return Task.FromResult<HttpResponseMessage>(forbiddenResponse);
}
return base.SendAsync(request, cancellationToken);
}
}
HttpClient
還支持SSL,就像任何其他.NET網絡客戶端。看看這篇文章:http://blogs.msdn.com/b/henrikn/archive/2012/08/07/httpclient-httpclienthandler-and-httpwebrequesthandler.aspx
我將在AWS上託管我的Web API應用程序。我想我可以爲它安裝和配置IIS,對吧? –
@NguyenMinhBinh不確定AWS爲您提供了什麼樣的訪問方式,但是如果您完全控制了您的虛擬機,當然。 – tugberk
好吧,我明白了:) –