4

IIS7 で実行されている既存の ASMX Web サービスが多数あり、それらを変更して、すべての要求と応答を HTTPS 経由で行う必要があるようにしたいと考えています。

このサイトでは、PHP やクラシック ASP などの他のページも実行されているため、サイトのルートを変更して HTTPS ページを提供することはできません。

これをASMX サービス (アプリケーション) ごとに設定するにはどうすればよいです.asmxまたは 404 エラーを返しますか?

考えと最善のアプローチは?

4

4 に答える 4

4

URL書き換えを試しましたか?

<rewrite>
    <rules>
        <rule name="Force HTTPS" stopProcessing="true">
            <match url="(.*)/ServiceName.asmx" />
            <conditions>
                <add input="{HTTPS}" pattern="^OFF$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>
于 2013-10-12T08:45:54.327 に答える
2

より簡単な解決策は、各サービスのコンストラクターに次のコードを含めることです。これにより、各サービスで個別に決定できます。

if (!HttpContext.Current.Request.IsSecureConnection)
{
    var sslUrl = HttpContext.Current.Request.RawUrl.Replace("http://", "https://");

    Response.Clear();
    Response.Write(string.Format("This service requires a SSL connection please go to {0}", sslUrl));
    Response.End();

    // Or simply redirect
    // Response.Redirect(sslUrl);
}
于 2013-10-17T05:21:07.487 に答える
-3

ASMX http://msdn.microsoft.com/en-us/library/aa480190.aspxの代わりに WCF を使用することをお勧めします。

上記の質問について、これで問題は解決しましたか?

http://msdn.microsoft.com/en-us/library/aa302409.aspx

ありがとう...

于 2013-10-17T09:32:27.323 に答える