0

我正在开发一个简单的 AngularJS Web 应用程序。

我只想使用登录名和密码来实现身份验证。

我能找到的所有 Web API 安全示例都是为每个请求发送用户名和密码,并使用实体框架。

我想要一个登录页面,对用户进行一次身份验证,然后让他们使用该应用程序。

我想使用 PetaPoco,因为我发现 Entity Framework 太复杂了(我必须学习 Linq)。但是 simpleMembership 提供程序示例使用实体框架)。甚至 MVC4 互联网应用程序也使用实体框架。

有什么想法/样本吗?

4

2 回答 2

0

我们一直在使用与您在问题中提到的相同的堆栈。ASP.Net MVC、Web API、PetaPoco。我们使用具有默认配置的ASP.Net 通用提供程序。

一旦用户在 ASP.Net MVC 应用程序中通过身份验证,对 webapi 的请求就不需要传递任何特定的凭据。由于底层框架是 ASP.Net,因此 FormAuthenticationModule 无缝地处理身份验证部分。

关于你的EF问题。我不认为这是一个问题,因为您没有与 EF 进行交互。图书馆是,你只是图书馆的消费者。它可能会增加对 EF 的依赖,但这不会影响您的实现,您可以自由使用所需的任何数据访问库。EF 的使用是抽象的。

于 2013-08-08T04:47:41.973 回答
0

我现在只有两个选项:

  1. 如果服务托管在同一个域中,您可以使用身份验证 cookie,您可以创建自定义身份验证提供程序或自定义授权过滤器,以处理那里的所有授权逻辑,并使用您想要的 ORM 并装饰您的方法想要保护类似 1.[Authorize(Roles="manager")] 的东西

  2. 还有另一种方法可以实现 HMAC 您可以在登录方法中生成它然后您可以将 HMAC 签名附加到请求并验证该请求,如果服务器计算的签名匹配,则需要保存该计算的签名在消息上,这意味着该消息已被授权。

我知道这更多是一个偏好问题,但我不喜欢每次发送登录名和密码的想法,您需要从 REST 服务中获得一些东西。

你可以看看这篇看起来很不错的文章

您可能必须在您的应用程序中考虑一种防止跨站点请求伪造攻击的方法

我希望这会有所帮助

于 2013-08-07T23:30:33.757 回答