【发布时间】:2013-12-16 02:27:45
【问题描述】:
我在~/odata/ 定义了一个 OData 端点,除非用户已通过身份验证,否则不需要访问该端点(事实上,您将如何保护未经身份验证的用户)。
我在 web.config 中为此路径设置了基于角色的身份验证:
<location path="odata">
<system.web>
<authorization>
<allow roles="WaitConfirmation, etc...."/>
</authorization>
</system.web>
</location>
当用户登录时,我不使用 OData 端点进行身份验证(主要是因为我需要弄清楚如何保护它)。
我使用 EntityFramework 来验证用户、返回用户对象并补充成员资格/角色详细信息。
这是允许用户的数据调用通过 WebAPI 路径的标准方法吗?如果是,您如何确保任何请求 WebAPI 请求(记住,我使用的是 OData)只返回与登录用户?
我只阅读了有关通过装饰控制器方法(即[Queryable(PageSize=10)])来“保护” OData 服务以限制 DOS 攻击等的内容,但没有阅读如何确保一个通用参数(即。 UserID=[this logged in user id]) 不包括在内,以将其包括在所有 EF 请求中。
【问题讨论】:
标签: asp.net-mvc-4 asp.net-web-api odata roleprovider user-roles