IMobileServiceSyncTable.PullAsync - 如何确保查询安全地限定到特定用户?

时间:2016-05-26 14:43:10

标签: azure azure-mobile-services

不确定IMobileServiceSyncTable安全性如何运作 - 比如说我有一个表,它存储多个用户的数据。

关注this Azure App Services tutorial,看起来我可以从移动应用中查询几乎所有用户的记录。

客户端(例如,Xamarin):

await todoTable.PullAsync("todoItems" + userid, 
        syncTable.Where(u => u.UserId = userid));

是否有办法(服务器端)自动将记录范围限定为当前经过身份验证的用户?或者,如果使用[Authorize]属性装饰表控制器,会自动为您完成吗?

服务器侧

[Authorize]
public class TodoItemController : TableController<TodoItem>
{
    protected override void Initialize(HttpControllerContext controllerContext)
    {
        base.Initialize(controllerContext);
        MyAppContext context = new MyAppContext();
        DomainManager = new EntityDomainManager<TodoItem>(context, Request);
    }

    // GET tables/TodoItem
    public IQueryable<TodoItem> GetAllTodoItems()
    {
        return Query();
    }

    // GET tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
    public SingleResult<TodoItem> GetTodoItem(string id)
    {
        return Lookup(id);
    }
}

1 个答案:

答案 0 :(得分:2)

查看这篇博客文章(假设是ASP.NET):http://shellmonger.com/2016/05/09/30-days-of-zumo-v2-azure-mobile-apps-day-18-asp-net-authentication/ - 它会调整表控制器以完全按照您的意愿执行。