Mike Wallace の「RequireHttps」属性を使用して、特定のコントローラーに SSL を要求するかどうかを強制しようとしています。
以下のコードがあり、正常にビルドされます。しかし、実際にコントローラーに属性を追加しようとすると失敗します。
他にも表示されるカスタム属性があり、表示されない別の属性があります。したがって、プロジェクトの問題かもしれませんが、新しいプロジェクトを試してみましたが、それでも失敗しました。コードは app_code フォルダーにあります。
using System;
using System.Net.Http;
using System.Web.Http.Filters;
using System.Web.Http.Controllers;
namespace WebAPIService
{
public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
public RequireHttpsAttribute();
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "HTTPS Required"
};
}
else
{
base.OnAuthorization(actionContext);
}
}
}
}
どんな提案も歓迎します。ありがとう。
編集:
API コントローラーで表示されるエラー: The type or namespace name 'RequireHttpsAttribute' could not be found (using ディレクティブまたはアセンブリ参照がありませんか?)