Приложение Flex с браузером и .net MVC RedirectToAction == BadRequest - PullRequest
1 голос
/ 23 марта 2011

У меня есть гибкое приложение с HTML-браузером.

Всякий раз, когда я пытаюсь войти в свое приложение .net 4 MVC 3, меня перенаправляют на URL, подобный этому:

http://dev.example.com/(F(pvQgwsX3QvLrI1tN0JENknfz27yN7H00FCaLw_N06qL_SvBGmbS9Mc8V9BIlergVUhGiLeg-JU5HnEE-fzXtWqtVq-S5Pk393AXbifUTmcH29sDF9e028kpbYbX8L-VOY75QXYzXHTDfb06ozuOJzPvPB-y8atHn2B3BoDyiZMBd3DCjdO4meTwp9kvNY6ZarXbFByTU932Hu95lRcTq6yJzQ8y5Ree28nqgjqVHKEV77noegweTKkZ0_5IUZYnE0))/someDirectory

и это происходит только в браузере Flex (Adobe Air 2.6). Вход в систему с обычным интернет-браузером в порядке.

Код для входа в систему выглядит следующим образом:

    [HttpPost]
    [ActionName("sign-in")]
    public ActionResult Signin(SignInModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            if (MembershipService.ValidateUser(model.Email, model.Password))
            {
                FormsService.SignIn(model.Email, model.RememberMe);
                if (Url.IsLocalUrl(returnUrl) && false)
                {
                    return Redirect(returnUrl);
                }
                else
                {
                    return RedirectToAction("Index", "admin");
                }
            }
            else
            {
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }
        }

        // If we got this far, something failed, redisplay form
        return View("signin", model);
    }

Есть идеи, что это за URL и как заставить его работать?

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

По какой-то причине я решил сменить пользовательский агент гибкого браузера на тот, который используют Chrome и альт! - это работает.

Очевидно, .net или MVC 3 не любят строку userAgent во Flex и решают испортить URL. Вероятно, он пытается установить сеансы без файлов cookie или что-то (для чего мое приложение не настроено).

Итак, вот моя новая, работающая строка user-agent:

Mozilla/5.0 (Windows NT 5.1) AppleWebKit/531.9 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24
1 голос
/ 23 марта 2011

Этот URL-адрес используется ASP.NET, когда браузер не поддерживает файлы cookie или они были отключены.В ASP.NET MVC нет ничего конкретного.Поскольку файлов cookie нет, токен аутентификации отправляется в URL для отслеживания зарегистрированных пользователей.

...