0

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

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

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

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

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

任何帮助表示赞赏。谢谢!

4

1 回答 1

0

尝试添加此处讨论的 .browser 文件: http ://www.simonantony.net/knowledge-base/articles/browsing-your-site-on-an-iphone-using-chrome-does-not-work/

我知道它说的是 chrome,但我也用 safari 解决了这个问题。

于 2012-10-10T06:19:43.173 回答