2011-12-07 108 views
1

我們有一個asp.net mvc2應用程序。我將默認路由設置爲命名爲SecureRedirect。當用戶去http://www.mydomain.com,默認路由被調用,調用SecureRedirect作用,這只是簡單:ASP.net MVC Android動作重定向不工作http https https:

return redirect("https://www.mydomain.com/secure/showlogin"). 

請注意,我如何調用通過HTTPS在行動現場。這在我測試過的所有基於PC的瀏覽器中工作得很好。它適用於我的iPhone和iPad,但它不適用於DroidX或三星Galaxy(基於Android)平板電腦等Android設備。我正在記錄SecureRedirect操作,並且我發現Android在iOS設備和PC瀏覽器所做的事情中從未觸及過操作。

這對我來說沒有任何意義,因爲這些Android設備正在運行WebKit,就像在iOS設備上一樣。

任何人都可以闡明這一點嗎?我寧願使用操作來處理重定向,而不是創建一個帶有硬編碼重定向到https的default.aspx頁面。

回答

0

真的很難重現,但我會說,以確保你真正的asp.net mvc方式的2件事情。

假設你的控制器被命名爲「安全」,並在安全控制器的動作被命名爲「showlogin」,

  1. 重定向到使用

    public ActionResult SecureRedirect() 
    { 
        UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext); 
        return Redirect(u.Action("showlogin", "secure", null, "https")); 
    } 
    
  2. 裝飾你的「showlogin你的行動「使用[RequireHttps]屬性的操作方法來確保https。這樣

    [RequireHttps] 
    public ActionResult showlogin() 
    { 
        .... 
    } 
    

希望這有助於

+0

感謝您的答覆。我所有的操作都已經實現了[RquireHttps],但Android不尊重它。不幸的是,Android並沒有打到我的SecureRedirect,所以使用RedirectToAction將無濟於事。 再次感謝。 –

+0

沒問題。真的很奇怪,只有android瀏覽器才能做到這一點。真的很難重現,你可以提供更多的信息或實時網址,所以我們可以在Android設備上測試? – dknaack

+0

告訴我這件事。如果我打電話給該網站,使用Android,使用http而不是https,它只是掛起並掛起返回頁面未找到錯誤,iOS設備沒有問題。我會ping你的網址。再次感謝 –