【发布时间】:2014-04-28 17:20:26
【问题描述】:
我需要从我自己的授权类访问Request 对象。控制器属性可能不是一个选项,这就是原因。
- 有用户
- 有物体
- 用户可以对对象拥有特定的权限(读/写/删除/...)
- 对象可以公开(也可以读/写)
因为这个系统我需要自己写授权逻辑,这不是问题,我在想这样的事情:
伪代码
public class ObjectsController : ApiController
{
private readonly AuthorizationService _auth = new AuthorizationService();
[Route]
public async Task<IHttpActionResult> Get()
{
var obj = new object(); // this is object that we will be working with
// Note: This is just for demo, real object will be something like `Item`
if (obj.IsPublic || _auth.CurrentUser.CanRead(obj))
{
return Ok(obj);
}
return Unauthorized();
}
}
我将如何检查当前用户
- 检查是否有标头
Token - 检查是否有url参数
?token= - 从令牌中获取用户
- 返回用户或为空
问题
现在因为我需要检查天气这个用户可以阅读这个Item (obj) AFAIK 我不能使用控制器属性,因为我首先需要从数据库中获取实际项目。我有哪些选择?我可以访问当前的Request 对象以在我的AuthorizationService 类中提取所需的值吗?
【问题讨论】:
-
HttpContext.Current.Request.
标签: c# asp.net asp.net-web-api asp.net-web-api2