使用PhoneGap授权用户使用MVC身份

时间:2014-01-30 16:18:57

标签: ajax cordova asp.net-mvc-5 asp.net-identity

我使用的是标准的MVC 5身份会员资格,因此可以对用户进行身份验证以使用我网站上的功能。除登录和注册外,所有操作都需要有人登录。

我想使用PhoneGap获取我的移动设备html并将其转换为移动应用程序。我打算用ajax对我的行为进行所有调用。

如何在不驻留在同一服务器上的html页面上执行此操作?如何记录某人,然后允许他们拨打电话?

1 个答案:

答案 0 :(得分:1)

使用新的MVC 5身份成员资格,从移动设备验证用户非常简单。实质上,从设备向服务器发出的每个HTTP请求都将包含一个承载令牌来授权该请求。 当您的Web API方法收到请求时,它将识别通过承载令牌创建它的用户。这允许您在Web API控制器中使用标准Authorize属性,我确信您习惯在MVC控制器中使用该属性。这是这个过程的basic example,但基本上是这样的:

  1. 包含用户名和密码的请求将发送到您的服务器。
  2. 服务器验证用户名/密码并发回承载令牌
  3. 向您的服务器发出另一个请求以访问数据或其他功能,并在每个请求中包含持有者令牌
  4. 假设您是从移动设备执行此操作,存储令牌的一些选项是HTML5本地存储,SQLLite等。没有“登录”这样做 - 只有对服务器的请求授权。当然,用户不知道这一点,因此模拟典型的登录体验非常容易。以下是扩展上述一个的简短示例:

    1. 创建一个标准登录屏幕,其中包含用户名和密码以及登录按钮
    2. 的字段
    3. 用户将其填写完毕,当他们点击登录时,您向服务器发出AJAX呼叫,请求使用用户输入的凭据(应通过HTTPS)的持有人令牌
    4. 服务器对凭据进行身份验证,然后您将获得持有者令牌。从用户的角度来看,他现在已“登录”。
    5. 从这里处理承载令牌的一种方法是将其存储在SQLlite或本地存储中,以便您可以轻松访问并包含对您所做服务器的任何更多请求。您只需要考虑令牌已过期(由您设置,查看我发布的链接),并相应地设计您的应用程序。您可能只想在用户使用该应用程序时仅将持有人令牌保留在移动设备上,从而收紧您的安全性。完成后,将其从设备上的存储中删除,用户在打开应用程序时必须再次进行身份验证过程(即“登录”)。

      此外,此视频Securing .Net Web APIs绝对值得关注。