使用phonegap和asp.net mvc 4登录

时间:2013-03-18 18:24:54

标签: cordova backbone.js asp.net-mvc-4

我正在开发一个组织者,其中包含通过网站保存和管理的用户任务。对于我使用ASP.NET MVC 4和backbone.js的网站。现在我想用PhoneGap创建一个移动应用程序。用户将能够登录/注册,然后他将能够在旅途中使用他的手机/平板电脑管理他的任务。所以我的问题是我不知道如何登录,然后如何从服务器获取任务。

现在我正在使用backbone.js,我在管理任务的服务器上有一个api。我的想法只是使用来自ASP.NET MVC的相同代码(只有html,css,js),它应该可以轻松工作但是对于那个api,用户必须被记录,因此使用简单的成员资格和Web安全性。用于后端部分,我不打算使用移动版本,我不确定用户将如何确切登录。

另一个想法是检查用户凭据(向服务器发出AJAX请求,可以说用户是否输入了有效的登录数据),以便在电话上显示我的用户ID(本地存储或类似的东西),然后使用服务器上的api不需要用户登录,它将管理用户的任务(我为其传递用户ID)。但我认为这将是一个巨大的安全漏洞,因为每个人只有输入用户ID才能更改任务。我已经找到了一个来自Raymond Camden(See it here)的登录示例,它可以帮助这个想法,但它只适用于登录部分(它只登录设备,但我解释的安全漏洞问题仍然存在)< / p>

所以如果您能给我一些如何实现设备登录以及如何从服务器获取用户数据的建议,我将不胜感激。我甚至只会欣赏概念性的想法。

2 个答案:

答案 0 :(得分:2)

您可以通过在controllers文件夹中创建Web API控制器来创建Web API接口,以公开服务器端代码。对于身份验证,您可以通过在授权标头中提供用户凭据来使用HTTP基本身份验证。现在,在Web API消息处理程序中,您需要读取用户的凭据并授权用户。 Here is a good article on this topic.。使用基本身份验证的一个缺点是,对于每个请求,您都需要访问AD数据库以授权用户。为了防止这种情况,您可以在用户第一次进行身份验证后创建安全令牌,然后将其传递给客户端,以便将来所有请求都使用此安全令牌。如果性能对您来说不是什么大问题,基本身份验证就可以。

答案 1 :(得分:0)

我遇到了同样的情况。为了解决这个问题,我使用了Thinktecture框架Session Token。它允许使用例如基本身份验证进行一次身份验证,然后您可以请求可以在请求之间传递的令牌,并且可以存储在本地存储中。这样,您就不必将用户和密码存储在不安全的位置,也不必每次请求都进行身份验证。