2012-10-23 9 views
9

私はクライアント(iphone、android、mac os、web、windows、...)にapisを提供するためにAsp.net Web APIを使用します。私はいくつかの他のリンク(リンクをハッキングする場合)のパラメータを理解するのを防ぐいくつかのAPIを実装したいと思います。十分安全ですか?はいの場合は、実装するためにクライアント側にインストールする必要がありますか?Asp.Net Web APIでHttps/SSL接続を実装するにはどうすればよいですか?

ありがとうございます。

答えて

10

これは、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また、単に他の.NETなどのSSLをサポートしていますウェブクライアント。この記事をご覧ください:http://blogs.msdn.com/b/henrikn/archive/2012/08/07/httpclient-httpclienthandler-and-httpwebrequesthandler.aspx

+0

AWSでWeb APIアプリケーションをホストします。私はそれをインストールして設定することができると思います。 –

+1

@NguyenMinhBinh AWSがIISに関してどのようなアクセス権を提供しているのかわからないが、あなたがあなたのVMを完全に制御できるなら、確かに。 – tugberk

+0

私はそれを持っています。 –

関連する問題