多个 Get 方法 OData
Multiple Get method OData
在许多实体上,一些用户有权请求他们的实体或任何实体。用户可以制作多个仪表板。普通用户应该只查询他们自己的仪表板,而管理员应该能够看到任何仪表板。
在这种情况下,与 OData 一起使用的最佳 uri 约定是什么?我考虑过 http://example.com/odata/Dashboards that will give only owned dashboards and http://example.com/odata/Dashboards/Any 之类的东西,它可以访问任何仪表板实体,但我真的不确定这是要走的路。
似乎没有人在教程中解释如何处理复杂的授权,而不仅仅是关于访问任何东西或什么都没有。
你们对此有何建议?如果您有一些教程可以解释有关授权的复杂情况,我真的很感兴趣。
谢谢!
如何使用 http://example.com/odata/Users(1)/Default.Dashboards() 和用户控制器的 Dashboards
功能,return 相关的仪表板。
builder.EntityType<User>().Function("Dashboards").ReturnsCollectionFromEntitySet<Dashboard>("Dashboards");
[HttpGet]
[ODataRoute("Users({key})/Default.Dashboards()")]
public IQueryable<Dashboard> Dashboards(int key)
{
// determine the user's rights
return _db.Dashboard.Where ...
}
在许多实体上,一些用户有权请求他们的实体或任何实体。用户可以制作多个仪表板。普通用户应该只查询他们自己的仪表板,而管理员应该能够看到任何仪表板。
在这种情况下,与 OData 一起使用的最佳 uri 约定是什么?我考虑过 http://example.com/odata/Dashboards that will give only owned dashboards and http://example.com/odata/Dashboards/Any 之类的东西,它可以访问任何仪表板实体,但我真的不确定这是要走的路。
似乎没有人在教程中解释如何处理复杂的授权,而不仅仅是关于访问任何东西或什么都没有。
你们对此有何建议?如果您有一些教程可以解释有关授权的复杂情况,我真的很感兴趣。
谢谢!
如何使用 http://example.com/odata/Users(1)/Default.Dashboards() 和用户控制器的 Dashboards
功能,return 相关的仪表板。
builder.EntityType<User>().Function("Dashboards").ReturnsCollectionFromEntitySet<Dashboard>("Dashboards");
[HttpGet]
[ODataRoute("Users({key})/Default.Dashboards()")]
public IQueryable<Dashboard> Dashboards(int key)
{
// determine the user's rights
return _db.Dashboard.Where ...
}