ASP.Net MVC 4,Web API和安全传递参数

时间:2013-05-17 15:33:35

标签: asp.net-mvc asp.net-web-api

所以我很高兴自己构建了一个月的ASP.Net MVC 4应用程序。我有安全模型,用户可以登录并将安全信息存储在用户会话中以用于后续页面请求。一切都很好。然后我实现了一些ajax调用以获取页面中的其他数据。我这样做是通过调用Web API接口来实现的。在Web API调用中,我尝试访问Session并且低,并且看到Session为null。现在我认为Web API应该是“无状态的”。应该传入web api调用的所有参数。但是如果其中一些参数是敏感的并且在进行ajax调用时无法从客户端传递出来呢?

我已经了解了在WebAPI中访问会话的黑客攻击。我宁愿不这样做,也违反了web api的租户。 ? 那么你是否将这些信息存储在数据库中并在web api调用中将其拉出来?看起来像PITA那样做。 那么在进行web api ajax调用时如何才能保证某些参数的安全呢? 或者你是否分解并只是访问会话?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我这样做的方式是继承基类,这个基类有以下几种:

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

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

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

...的伪

我想要一份政策!

客户端

  • 发送策略ID(1234到WebAPI,如果他们无法从中获取信息,对黑客毫无意义)
  • 此ID已经过验证 User.Identity.Name以查看是否可以检索信息