1

ActionFilterAttributeASP.NET Web APIを使用してローカルホストをテストするにはどうすればよいですか?SSLチェックをスキップしたい。

public class RequireHttpsAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            var request = actionContext.Request;
            if (request.RequestUri.Scheme != Uri.UriSchemeHttps)
            {
                throw new ValidationException(new SecureConnection());
            }

            base.OnActionExecuting(actionContext);
        }
    }
4

2 に答える 2

3

リクエスト URI が localhost かどうかをテストするだけの場合は、URI の IsLoopback が正常に機能するはずです。

しかし、ここに問題があります... 要求 URI は、ローカル コンピューターではないコンピューターによって簡単にスプーフィングされる可能性があります。そのため、どのリモート コンピューターでも、実際には localhost Host ヘッダーを含む要求を送信できます。

より良い方法は、ブログ投稿で Filip の提案を使用することです。

http://www.strathweb.com/2013/01/adding-request-islocal-to-asp-net-web-api/

これは、selfhost と webhost の両方、およびクライアントの IP アドレスがループバックであるかどうかで機能するはずです。

于 2013-02-23T03:33:41.270 に答える
1

これは機能するようです。私が間違っている場合はお知らせください。

request.RequestUri.IsLoopback
于 2013-02-22T18:44:57.197 に答える