![](/img/trans.png)
[英]How to pass single parameter in RedirectToAction to different controller in ASP .NET MVC?
[英]Flex Application with browser and .net MVC RedirectToAction == BadRequest
我有一個帶有HTML瀏覽器的flex應用程序。
每當我嘗試登錄.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是什么以及如何使其工作嗎?
一時興起,我決定將flex瀏覽器的用戶代理更改為Chrome和viola使用的代理。 - 有用。
顯然.net或MVC 3不喜歡flex的userAgent字符串,因此決定對URL進行處理。 它可能正在嘗試設置無cookie會話或其他內容(我的應用程序未針對此設置)。
所以這是我新的有效的用戶代理字符串:
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/531.9 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24
當瀏覽器不支持cookie或已將其關閉時,ASP.NET將使用此URL。 它沒有特定於ASP.NET MVC。 由於沒有cookie,因此會在url中發送身份驗證令牌,以跟蹤登錄的用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.