我有一个 Web API,无需身份验证即可向用户提供数据(该网站允许用户在使用传统的 cookie 和会话登录后发布数据)。有人想开发一个 iPhone 应用程序,将东西添加到我的数据库中,所以我希望用户在 iPhone 上进行身份验证,然后 api 将允许发布。
那么,我应该看什么才能轻松做到这一点?目前的 API 是 RESTful 的,最好保持这种状态。显然我是新手,但似乎有很多标准我不知道从哪里开始。如果我能在不到一个小时的时间内完成编码,那就太理想了。
非常感激!
我有一个 Web API,无需身份验证即可向用户提供数据(该网站允许用户在使用传统的 cookie 和会话登录后发布数据)。有人想开发一个 iPhone 应用程序,将东西添加到我的数据库中,所以我希望用户在 iPhone 上进行身份验证,然后 api 将允许发布。
那么,我应该看什么才能轻松做到这一点?目前的 API 是 RESTful 的,最好保持这种状态。显然我是新手,但似乎有很多标准我不知道从哪里开始。如果我能在不到一个小时的时间内完成编码,那就太理想了。
非常感激!
实现这一点的一种体面方法是为应用程序创建者提供令牌和应用程序 ID,并让他们使用该令牌作为商定的加密方法的盐,以将用户名和密码(加上应用程序 ID)发送到新的新会话的 API 调用。
在收到新会话的请求后,您将根据提供的 appid 查找他们的令牌,并尝试使用令牌解密用户/通行证。
如果用户/通行证被接受,那么您创建一个新会话并将会话 ID 返回给他们,他们可以将其与任何新请求一起发送。
这可以防止应用程序必须为每个请求发送身份验证,并允许您在给定时间使会话过期。
WebSecurity 是在 ASP.NET MVC 4 中引入的。它依赖于 SimpleMembershipProvider。它使用 FormsAuthentication 来管理 cookie
WebMatrix.WebData.WebSecurity
为 ASP.NET 网页应用程序提供安全和身份验证功能,包括创建用户帐户、登录和注销用户、重置或更改密码以及执行相关任务的能力。
您必须先创建或初始化 WebSecurity 数据库,然后才能在代码中使用 WebSecurity 对象。
在 Web 的根目录中,创建一个名为 _AppStart.cshtml 的页面(或编辑页面)。
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
}
您可以通过以下代码验证您的请求。
WebSecurity.Login(LoginName, Password, true)
一旦认证成功,您将获得 WebSecurity.IsAuthenticated 的值为 true,您将获得用户的身份
您还可以使用“ SimpleRoleProvider
”来管理应用程序中的角色