ASP.net MVC Android动作重定向不工作http到https

时间:2011-12-07 22:06:42

标签: android asp.net-mvc

我们有一个asp.net mvc2应用程序。我有默认路由设置来命中一个名为SecureRedirect的操作。当用户转到http://www.mydomain.com时,会调用默认路由,调用SecureRedirect操作,这样做很简单:

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页面。

1 个答案:

答案 0 :(得分:0)

真的很难重现,但我会说两件事,以确保你真正的asp.net mvc方式。

假设您的控制器名为“secure”且安全控制器中的操作名为“showlogin”,

  1. 使用

    重定向到您的操作
    public ActionResult SecureRedirect()
    {
         UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
         return Redirect(u.Action("showlogin", "secure", null, "https"));
    }
    
  2. 使用[RequireHttps]属性装饰“showlogin”操作方法以确保https。像这样

    [RequireHttps]
    public ActionResult showlogin()
    {
       ....
    }
    
  3. 希望这会有所帮助