我有一个带有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);
}
知道那个网址是什么以及如何让它工作?
答案 0 :(得分:2)
我只是随心所欲地决定将flex浏览器的用户代理更改为Chrome和中提琴使用的用户代理! - 它有效。
显然.net或MVC 3不喜欢flex的userAgent字符串,并决定删除网址。它可能试图设置无cookie会话或其他东西(我的应用程序没有设置)。
所以这是我新的,有效的用户代理字符串:
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/531.9 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24
答案 1 :(得分:1)
当浏览器不支持cookie或已关闭cookie时,ASP.NET会使用此URL。它不是ASP.NET MVC特有的。由于没有cookie,因此会在URL中发送身份验证令牌,以便跟踪已登录的用户。