使用Web API进行身份验证的最简单方法是什么?

时间:2010-06-22 02:16:48

标签: authentication asp.net-web-api

我有一个网络API,无需身份验证即可向用户提供数据(该网站允许用户在使用传统的Cookie和会话登录后发布数据)。有人想开发一个可以添加数据库的iPhone应用程序,所以我希望用户在iPhone上进行身份验证,然后api将允许发布。

那么,我应该轻松地做些什么呢?现在的API是RESTful,保持这种方式很好。显然我是新手,但似乎有很多标准,我不知道从哪里开始。如果我能在不到一个小时的时间内完成编码,那就太理想了。

非常感谢!

2 个答案:

答案 0 :(得分:1)

实现这一目标的一个不错的方法是为应用创建者提供令牌和应用ID,并让他们使用该令牌作为一个商定的加密方法的盐来发送用户名和密码(加上应用ID)新会话的新API调用。

收到新会话的请求后,您将根据提供的appid查找其令牌,并尝试使用令牌解密用户/通行证。

如果接受了用户/通行证,那么您创建一个新会话并将会话ID返回给他们,他们可以发送任何新请求。

这可以防止应用程序为每个请求发送身份验证,并允许您在给定时间使会话过期。

答案 1 :(得分:0)

WebSecurity是在ASP.NET MVC 4中引入的。它依赖于SimpleMembershipProvider。它使用FormsAuthentication来管理cookie

WebMatrix.WebData.WebSecurity为ASP.NET网页应用程序提供安全和身份验证功能,包括创建用户帐户,登录和注销用户,重置或更改密码以及执行相关任务的功能。

您必须先创建或初始化WebSecurity数据库,然后才能在代码中使用WebSecurity对象。

在网络的根目录中,创建一个名为_AppStart.cshtml的页面(或编辑页面)。

  _AppStart.cshtml

    @{
    WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
    }

您可以通过以下代码验证您的请求。

WebSecurity.Login(LoginName, Password, true)

一旦经过身份验证成功,您将获得WebSecurity的价值.IsAuthenticated为true,您将获得用户身份

您还可以使用“SimpleRoleProvider”来管理应用中的角色