私のサイトには、http でアクセスされるパブリック セクションと、ログインが必要な https 部分があります。サイトからログアウトすると、http パブリック インデックス ページにリダイレクトされます。
以前は、指し示す完全な URL も指定してこれを行っていました。最近、テストのためにサイトを多数のドメインで実行できるように、そのようなものを取り除く必要がありました。
UriBuilder を使用して https リンクを http リンクに変換して、Web サイトが特定の URL を直接指す必要がないようにしました。これにより、サイトは任意のドメイン名を使用できるようになります。現在、それはコンピューター名を指しています。
if (Request.IsSecureConnection)
{
UriBuilder ub = new UriBuilder();
ub.Path = "/html/index.html";
ub.Scheme = Uri.UriSchemeHttp;
ub.Port = -1; // use default port for scheme
Response.Redirect(ub.Uri.ToString(), true);
//An old direct link to the site
//Response.Redirect("http://www.someaddress.com/html/index.html");
}
正しいドメインを指すのではなく、テストサーバーでコードがリモートでトリガーされると、アドレスに戻ります
http://localhost/html/index.html
それ以外の
http://testserver/html/index.html
サーバーに接続しているアドレスを返す代わりに、なぜこれを行っているのかわかりません。