我有使用ASP.NET MVC 2创建的简单jQuery移动网站,并使用基本表单身份验证来授予对网站的访问。

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

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

该应用程序非常基本,实质上具有两个不同的列表屏幕,可以钻入工作细节。

1. Login    
    1.1 Job List    
        2. Job Details

    1.2 Team Diary    
        2. Job Details

我相信,在连接不可用时,创建一个允许浏览日记的数据的脱机版本将非常容易,但是我找不到有关需要身份验证的网站的任何信息离线。

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

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

有帮助吗?

解决方案

我正在为离线使用的MVC3网站重新处理,并且遇到了一些相同的问题。

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

我的应用使用从中借来的方法 吉姆·莱默(Jim Lehmer)检测在线连接.

一旦发现我们已连接,我就会在我的帐户控制器中创建了一个小动作,该操作可以很好地返回用户是否已验证:

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

希望有帮助!

其他提示

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

当用户首次访问应用程序时,它会检查是否存在本地数据(正确的本地数据?),如果存在本地数据,则假设用户可以访问系统。现在检查Internet连接是否存在,如果它存在适当的凭据,如果没有连接工作。因此,他们可以愉快地离线工作。

一旦该用户重新恢复与Internet的连接,在将本地同步到远程之前,请向用户咨询其凭据。如果他们最初具有Internet连接性,该应用程序无疑将存储一些适当的身份验证的令牌,并可以毫无疑问地同步。否则,请立即索要密码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top