用于移动设备的ASP.NET MVC 4 / Web API单页应用程序......需要身份验证

时间:2012-10-09 21:34:13

标签: javascript asp.net-mvc authentication forms-authentication asp.net-web-api

我们开发了一个ASP.NET MVC 4 / Web API单页,移动网站(也使用jQuery Mobile),只能从移动设备(例如iPad,iPhone,Android桌面和手机等)访问。 ),而不是桌面浏览器。此移动网站将在内部托管,如内部网站点。但是,由于我们是从移动设备访问它,因此我们无法使用Windows身份验证。我们仍然需要知道哪个用户(及其角色)正在登录移动网站应用。

我们尝试过使用ASP.NET的表单身份验证和成员资格提供程序,但无法按照我们想要的方式运行它。我们需要的是仅在用户第一次访问移动设备上的站点时才提示用户输入用户名和密码。在他们输入正确的用户名和密码并且经过一次身份验证之后,他们每次访问该网站时都应该直接进入。他们不应该重新输入他们的凭据(即,需要在本地保存的东西)每个设备在第一次之后识别用户。)

这是我们遇到麻烦的地方。一切都是第一次按预期工作。也就是说,提示用户输入用户名和密码,并在执行此操作后,进行身份验证并允许其进入站点。问题是每次在移动设备上关闭浏览器后,设备和用户都不知道,用户必须重新输入用户名和密码。

我们也尝试过很多东西。我们尝试在JavaScript中设置持久性cookie。不好。饼干不是第二次阅读。我们尝试从ASP.NET手动设置持久性cookie。不好。当然,我们使用FormsAuthentication.SetAuthCookie(model.UserName,true);作为表单身份验证框架的一部分。不好。我们尝试使用HTML5本地存储。不好。无论我们尝试什么,如果用户在移动设备上,他们每次都必须登录。 (注意:我们尝试过运行iOS 5.1和6.0的iPad和iPhone,Safari配置允许使用Cookie,我们已尝试使用Android 2.3.4。)

是否有一些技巧可以让这样的场景起作用? 或者,我们是否必须编写某种自定义身份验证机制?如果是这样,怎么样?而且,什么? 或者,我们应该使用基于声明的身份验证和WIF之类的东西吗? 或???

感谢任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:0)

尝试添加.browser文件,如下所述: http://www.simonantony.net/knowledge-base/articles/browsing-your-site-on-an-iphone-using-chrome-does-not-work/

我知道它说的是chrome,但我也遇到了safari这个问题。