1

如果我有使用 ServiceStack 的操作,例如 GetOrders:

[Route("/orders")]
public class GetOrders : IReturn<List<Order>> { }

然后我在服务中使用它:

[Authenticate]
public class OrdersService : Service
{
    public object Get(GetOrders request)
    {
        var dbOrders = Db.Select<Order>().ToList();
        // What I want is to only get orders of the user making the request
        // var dbOrders = Db.Select<Order>().Where(x=>x.UserId == ??).ToList();
        return dbOrders;
    }   
}

假设我的Order实体有一个名为 的属性UserId,我如何访问当前登录的用户,然后我可以映射到UserId并从我的数据库中只选择那些订单?

4

1 回答 1

3

您可以通过该SessionAs<T>方法访问您键入的 UserSession,例如:

[Authenticate]
public class OrdersService : Service
{
    public object Get(GetOrders request)
    {
        var userSession = base.SessionAs<AuthUserSession>();
        var userId = int.Parse(userSession.UserAuthId);
        var dbOrders = Db.Select<Order>(x => x.UserId == userId);
        return dbOrders;
    }   
}
于 2013-10-01T15:40:38.907 回答