ASP.net MVC Android перенаправление действий не работает http на https

1

У нас есть приложение asp.net mvc2. У меня установлен маршрут по умолчанию, который срабатывает под действием SecureRedirect. Когда пользователь переходит на http://www.mydomain.com, вызывается маршрут по умолчанию, вызывая действие SecureRedirect, которое делает простой:

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

Обратите внимание, как я вызываю сайт через https в действии. Это прекрасно работает во всех браузерах на базе ПК, которые я тестировал. Он отлично работает на моем iPhone и iPad, но не работает на устройствах Android, таких как планшет DroidX или Samsung Galaxy (на базе Android). Я регистрирую действие SecureRedirect, и я нахожу, что Android никогда не срабатывает, пока работают устройства iOS и браузеры для ПК.

Для меня это не имеет смысла, поскольку на этих устройствах Android работает WebKit, как и на устройствах iOS.

Может ли кто-нибудь пролить свет на это? Я бы предпочел обработать перенаправление, используя действия вместо создания страницы default.aspx с жестко закодированным перенаправлением на https.

Теги:
asp.net-mvc

1 ответ

0

На самом деле трудно воспроизвести, но 2 вещи, которые я скажу, чтобы обеспечить вам реальный способ asp.net mvc.

Предполагая, что ваш контроллер называется "безопасным", а действие в защищенном контроллере называется "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 делает это. Действительно трудно воспроизвести, не могли бы вы предоставить больше информации или реальный URL, чтобы мы могли проверить это на устройствах Android?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню