2013-03-18 65 views
4

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

现在我正在使用backbone.js,并且在管理任务的服务器上有一个api。我的想法只是使用ASP.NET MVC中的相同代码(只有html,css,js),并且它应该很容易工作,但是对于那个api用户必须被记录,并且这是使用简单的成员资格和web安全性在后端部分中使用,我不会用于移动版本,我不知道用户登录的具体情况。

另一个想法是检查用户凭证(通过AJAX请求到服务器可以说用户是否输入了有效的登录数据),以便在电话上存储我的用户标识(本地存储或类似内容),然后在服务器上使用api,这将不需要用户登录,它将管理用户的任务(为此我传递用户ID)。但我认为这将是一个巨大的安全漏洞,因为每个人只有输入用户ID才能更改任务。我已经找到了Raymond Camden的一个登录示例(See it here),这可能有助于这个想法,但它仅适用于登录部分(并且它仅在设备上登录,但仍然存在我解释的安全漏洞问题,关注我)

So我将不胜感激,如果你请给我一些想法如何实现在设备上登录和如何从服务器获取用户数据。即使只有概念性的想法,我也会很感激。

回答

2

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

0

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