0

因此,一个月以来,我一直在愉快地构建我的 ASP.Net MVC 4 应用程序。我有适当的安全模型,用户可以登录并且安全信息被存储在用户会话中以供后续页面请求。这一切都很好。然后我实现了一些 ajax 调用以将额外的数据放入页面。我通过调用 Web API 接口来做到这一点。在 Web API 调用中,我尝试访问 Session 并且低并且看到 Session 为空。现在我知道 Web API 应该是“无状态的”。Web api调用的所有参数都应该传入。但是如果其中一些参数是敏感的并且在进行ajax调用时不能从客户端传递怎么办?

我已经阅读了有关在 WebAPI 中访问会话的技巧。我宁愿不这样做并违反 web api 的租户。? 那么你是否将这些信息存储在数据库中并在 web api 调用中将其提取出来?看起来像一个 PITA 来做到这一点。那么在进行 web api ajax 调用时如何保证某些参数的安全呢?还是您崩溃了,然后才可以访问会话?

4

2 回答 2

0

每个服务调用都可以接受一个用户 ID。

WebAPI 控制器方法使用用户 ID 进行进一步的数据查找,例如查找敏感的订单详细信息。

于 2013-05-17T15:44:31.257 回答
0

我这样做的方式是从基类继承,这个基类具有以下内容:

public string UserName
   {
       get
       {
            return User.Identity.Name;
       }
}

WebAPI 可以看到这个 UserName 并且每个 UserName 都是唯一的,因此您可以根据这个变量进行用户查找。

如果您想向 WebAPI 发送任何进一步的数据,那么您将不得不向控制器发送一个 ID,并根据 UserName 对其进行验证,以查看他们是否可以访问它。

伪...

我要政策!

客户端

  • 发送策略 ID(1234 到 WebAPI,如果黑客无法从中获取信息,则对黑客毫无意义)
  • 此 ID 针对 User.Identity.Name 进行验证,以查看是否可以检索信息
于 2013-05-17T15:53:46.637 回答