ActionFilter
これは、スキームが ssl に設定されていない場合にリクエストを検査して応答する単純なものを作成することで実現できます。非常に最小限の実装は次のようになります。
public class RequireHttpsAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Forbidden);
}
}
}
これをどこにでも適用するには、アプリケーションのブートストラップ時に WebAPI 構成でグローバル フィルターとして登録する必要があります。それは次のようになります。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new RequireHttpsAttribute());
// ... More configuration ...
}
}
Web を少し検索すると、ニーズにより適した、より堅牢なロジックを備えた同様のフィルターの例が多数見つかります。