2011-10-05 60 views
2

我知道你可以這樣做:Web Farm框架和MVC 3:如何在Action方法上需要https。

#if !DEBUG 
    [RequireHttps] //apply to this action only 
#endif 

如果你在哪裏「控制器」服務器接收外部SSL 443的請求,使用密碼進行解密,然後將它轉發到主/輔服務器使用Web農場框架http 80(沒有ssl?)

在這個環境中,我嘗試了[RequireHttps]屬性,但它在Firefox中響應「頁面沒有正確重定向」。 Firefox已經檢測到服務器以永不完成的方式重定向該地址的請求。它認識到它不是SSL,但是因爲它剝離了SSL,所以MVC永遠不會看到SSL屬性。

如何重寫某些操作方法以在Web場中的MVC 3中使用https?你怎麼能用[RequireHttps]來做到這一點,或者你是否必須挑選你的網站中需要ssl和「URL重寫」的每一個URL呢?

編輯:

我改變了控制器識別端口443的流量,並轉發給HTTPS Web場。我以爲我可以逃脫只在控制器上加載SSL證書,但他們也需要加載主要和次要(或僅)。

回答

2

在您的操作方法中,您可以檢查安全連接:

if(Request.IsSecureConnection()) 
{ 
    // Secure connection logic here 
} 
+0

問題是Web服務器場在將SSL傳遞到主Web服務器之前將其刪除。 Request.IsSecureConnection表示爲false。 –

+0

我設置WWF將SSL請求轉發到第二臺服務器上的SSL端口。現在它可以工作。 –

+0

所以在正確設置控制器時,您的建議也起作用(減去屬性上的括號)。 –