2011-07-17 23 views
8

私はHTTPS以外のページに表示される部分的なビューを持っていますが、SSLを必要とするコントローラにはPOSTSを表示しています。フォームの定義はこれです:Url.Actionポート番号を含まない

 <form id="authForm" 
      method="post" 
      action="@Url.Action("authenticate", "auth", new {}, "https")"> 

私がいる問題は、Visual Studioとするとき、デバッグ中に、ホストとポートはlocalhost:64043ある、ということです。しかし、上記のUrl.Actionコールは、ポート番号を入力しません。これは、ブラウザが私のIISインストールを指示することを意味します。他に何かを加えたり、このメソッドをオーバーライドしなければなりませんか?私は自分のアプリケーションが場所にとらわれないようにしたい。

ありがとうございます!

答えて

10

あなたはこのようにそれを含めることができます。もちろん、

@Url.Action(
    "authenticate", 
    "auth", 
    null, 
    "https", 
    Request.Url.Host + ":" + Request.Url.Port 
) 

これは、ローカルWebサーバがカッシーニの場合ではありませんSSLをサポートしなければならないことを意味します。これにはIIS Expressを使用できます。

+0

こんにちは、ありがとうございます。 IIS Expressが既にインストールされていることが分かります。しかし、私が今問題になっているのは、IISにエクスプレス証明書がインストールされていることが示されているにもかかわらず、 'サーバーに安全な接続を確立できません。これはサーバーに問題があるかもしれないし、持っていないクライアント認証証明書を要求しているかもしれません。」フォームをポストしようとすると、エラーとして表示される... argh! –

0

統合開発サーバーはHTTPSをサポートしていませんが、ローカルIISを使用できます - HEREを参照してください。

0

Httpとhttpsの接続は通常2つの異なるポートにあります。したがって、あるプロトコルから別のプロトコルに変更する場合は、標準ポートを使用するか、特定のポートを自分で供給する必要があります。一般的なシステムが適切なポートを決定できる合理的な方法はありません。

関連する問題