ASP.NET Web アプリケーションで HTTPS を使用したいのですが、Login.aspx ページに対してのみです。
これはどのように達成できますか?
最初に証明書を取得または作成します
http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Verから SecureWebPageModule モジュールを取得します。設定手順は記事に記載されています。
secureWebPages タグを web.config に追加します
<configuration>
...
<secureWebPages enabled="true">
...
</secureWebPages>
...
<system.web>
...
</system.web>
</configuration>
https プロトコルに使用するファイルとディレクトリを追加します。
<secureWebPages enabled="true">
<file path="Login.aspx" />
<file path="Admin/Calendar.aspx" ignore="True" />
<file path="Members/Users.aspx" />
<directory path="Admin" />
<directory path="Members/Secure" />
</secureWebPages>
お役に立てれば!
独自の証明書を公開することも、購入することもできます。会社によっては、証明書を購入すると、ほとんどのブラウザーの証明書ストアに既に保存されていることを意味します。自己公開されたものはそうではなく、ユーザーは証明書をインストールする追加の手順を実行する必要があります。
使用している IIS のバージョンはわかりませんが、IIS 6 の詳細な手順を次に示します。
比較的安価な証明書を購入するか、大物 (verisign) を使用して拡張検証証明書を取得し、アドレス バーが IE の緑色に変わるようにすることができます。また、やや厳密な検証プロセスであり、時間がかかります。
Web サイトにアクセスするすべてのユーザーがわかっている場合は、独自のユーザーをインストールしても問題ありません。ただし、匿名ユーザー (あなたが知らない) を含むオープンな Web サイトの場合は、ほとんどの主要なブラウザー、証明書ストアに既にあるものを購入するのがおそらく最善です。
IIS を介して SSL を有効にし、login.aspx ページのみに SSL を要求し、残りのページには要求しないようにすることができます。
SSL をセットアップ/インストールした後、ログイン ページで何らかのリダイレクトを https:// に行う必要があります。次に、検証後にユーザーが送信されるページが何であれ、それは http://.
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
If Request.IsSecureConnection = False And _
Not Request.Url.Host.Contains("localhost") Then
Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"))
End If
End Sub
これは、マスター ページまたは https が必要なすべてのページに実装する方が簡単な場合があります。「localhost」を確認することで、テスト環境でエラーが発生するのを回避できます (テスト サーバーに「mytestservername」を確認する以外の名前がない限り)。
免責事項-私はこのプロジェクトの開発に関わっていました
http://nuget.org/packages/SecurePages/を使用することをお勧めします。これにより、特定のページを保護したり、正規表現を使用して一致を定義したりできます。また、正規表現に一致しない、または直接指定されたすべてのページを強制的にHTTPに戻します。
NuGetを介してインストールできます。Install-Package SecurePages
ドキュメントはこちら:https ://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages
簡単な使用法:
SecurePagesConfiguration.Urls.AddUrl("/cart");
また
SecurePagesConfiguration.Urls.AddRegex(@"(.*)account", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);
IIS 構成で HTTPS を有効にすることはできますが、SSL 証明書を取得して IIS にプラグインしない限り、「安全」ではありません。ポート 443 が開いていることを確認します。