2

我有使用 asp.net mvc 2 创建的简单 jQuery Mobile 站点,并使用基本表单身份验证来授予对站点的访问权限。

该应用程序是一个简单的工作日记,允许区域经理查看分配给区域团队的当前问题的详细信息。

当移动连接可用时,该应用程序运行良好,但由于缺乏信号,我们需要研究使应用程序核心离线可用的可能性。我一直在研究使用 html 5 使应用程序脱机的可能性,但找不到任何有关验证用户的信息。

该应用程序非常基础,基本上有两个不同的列表屏幕,可以深入了解工作细节。

1. Login    
    1.1 Job List    
        2. Job Details

    1.2 Team Diary    
        2. Job Details

我相信创建数据的离线版本会很容易,当连接不可用时允许浏览日记,但我找不到有关需要身份验证的站点的任何信息,然后才能访问允许的页面离线。

内容不是敏感数据,但显然客户不希望任何人能够在面向公众的网站上浏览工作日记。

对可能离线使用的站点中的用户进行身份验证的首选方法是什么?

4

2 回答 2

4

啊。我明白你现在在问什么。我建议如下。

当用户第一次访问应用程序时,它会检查是否存在本地数据(正确的本地数据?),如果存在本地数据,则假定用户可以访问系统。现在检查互联网连接,如果存在,请提供正确的凭据,如果没有连接脱机工作。因此,他们可以在离线时愉快地工作。

一旦该用户重新连接到 Internet,在本地与远程同步之前,请询问用户他们的凭据。如果他们最初有互联网连接,应用程序无疑会存储一些他们正确身份验证的令牌,并且可以毫无疑问地同步。否则,现在要求输入密码。

于 2011-11-29T21:16:08.320 回答
0

我正在重组 MVC3 站点以供离线使用,并且遇到了一些相同的问题。

您需要注意的一件事是浏览器会立即尝试下载 cache.manifest 中列出的所有文件。如果用户尚未登录,并且如果用户未通过身份验证,您将经典重定向到登录页面,这会导致问题。您需要打开这些页面的“静态”视图以供公众访问,并让您的 JavaScript 在尝试检索/发送更新之前确定用户是否已登录。这将允许浏览器下载静态非内容页面,并允许您的 JavaScript 在必要时管理内容。

我的应用程序使用从 Jim Lehmer 借来的方法来检测在线连接

一旦我们发现我们已经连接,我在我的帐户控制器中创建了一个小动作,它很好地返回用户是否经过身份验证:

    public JsonResult IsAuthenticated()
    {
        return Json(new { Request.IsAuthenticated }, JsonRequestBehavior.AllowGet);
    }

希望有帮助!

于 2012-01-30T23:12:00.150 回答