私はこの問題について2,3日ほど調べており、かなりの研究を行っていますが、私はこれを理解できません。HTTPからHTTPSへのブラウザの問題
私は自分のページをhttpやhttpsにリダイレクトするように私のページを制御しようとしています。
私はその後、私はHttpModuleをリクエストに応じてすべてのページをチェックするために実行しているHTTPS
[AttributeUsage(AttributeTargets.Class)]
public sealed class RequireSSL : Attribute { }
で実行する必要があるすべてのページの上に置くためにattrubteを作成しました。
public class DartsGhentPipeline : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += Context_PreRequestHandlerExecute;
}
private void Context_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpRequest request = application.Request;
HttpResponse response = application.Response;
Page page = application.Context.CurrentHandler as Page;
if (page == null)
return;
bool requireSSL = page.GetType().GetCustomAttributes(typeof(RequireSSL), true).Length > 0;
bool isSecureConnection = request.IsSecureConnection;
string url = string.Format("{0}://www.dartsghent.be{1}", requireSSL ? Uri.UriSchemeHttps : Uri.UriSchemeHttp, HttpContext.Current.Request.RawUrl);
if (requireSSL != isSecureConnection)
response.RedirectPermanent(url);
}
public void Dispose() { }
}
ここで問題は、同じURLにリダイレクトするときです。ブラウザはhttpからhttpsに切り替えることを拒否するか、またはその逆の方向にリダイレクトループが発生し、ブラウザがこれを回避します。
wwwと私のURLを入れ替えると、私のウェブサイトが完全に動作することがわかりました。またはwwwなし。しかし私は私がtest.dartsghent.beを持っているサブウェブサイトでこれを使うことはできません
誰も私がこれをいかに解決でき、urlrewriterモジュールplsなしでどうすればいいか教えてください。
任意のヘルプは
注意を高く評価している:私はMVC
ご覧のとおり、このページはそのままリダイレクトされています。 RedirectPermanent(URL)をhttpsに使用していますが、リダイレクトされてもhttpsに移動しないため、試行を続けます。
「ブラウザが切り替えることを拒否する」とはどういう意味ですか?レスポンスに正しいリダイレクトヘッダーが設定されていますか(ブラウザの開発ツールを使用していますか?)予期しないブラウザの動作は何ですか? –
Chromeで私は次のような動作をしました http:// dartsghent。be - > https://wwww.dartsghent.be =成功 http://dartsghent.be - > https://dartsghent.be =ページはhttpプロトコルに残ります –
私がテストするほど、私はより多くの問題がリダイレクトにあると考えてください。私はリダイレクトにhttpsリンクに行くことを明確に伝えています。リダイレクトはドメインが同じである限り現在のものと同じプロトコールに自分自身をリダイレクトしているように見えます。それに関する解決策はありますか? –