2012-08-29 135 views
0

我正在开发使用MVC 4的移动应用程序。我正在保护它。该应用程序有2页(“家”和“Clientes”)Asp.net mvc和jquery移动身份验证

当应用程序启动时,它要求我输入用户名和密码,这是其网址http://localhost:59170/Account/Login?ReturnUrl=%2f

我登录并进入主页。这是我可以在IE http://localhost:59170/Account/Login?ReturnUrl=%2f上看到的网址。

从这个页面我去了Clientes页面。这是我可以在IE http://localhost:59170/Account/Login?ReturnUrl=%2f#/Clientes上看到的网址。目前一切正常(尽管url像一些陌生人)。

当我按下IE上的后退按钮时,会发生问题。它必须去主页,但我去http://localhost:59170/Account/Login?ReturnUrl=%2f#/Account/Login?ReturnUrl=%2f它要求我登录。

什么可能导致此行为,我该如何解决?

回答

0

每当您请求需要验证的页面时,.NET都会将您重定向到指定的登录页面,并将请求的URL附加到URL。这样,一旦用户成功登录,它将把它们重定向到他们自动请求的页面。例如,在您的第一个网址中,您的网站的根/主页的返回网址编码表示形式为

它会一直重定向您,直到您通过身份验证。如果您不想在您的主页上进行身份验证,只需使用[授权]注释您的帐户控制器,而不是您的家庭控制器

+0

但我第一次通过身份验证,然后返回登录页面但我已通过身份验证。问题只发生在移动应用程序中。 – felix

+0

我觉得这个问题就是登录页面被当作普通页面来处理。如果我在登录页面中按下,我会转到正确的页面。我必须按两次才能返回页面。谢谢 – felix

+0

回到定义总是会有倒退的效果......它不会确定你已经认证并执行重定向,因为它没有向服务器发出请求。你所描述的是标准的浏览器功能 – MiiisterJim