【问题标题】:Get Resource based on currently authenticated user根据当前认证用户获取资源
【发布时间】:2013-10-01 14:42:30
【问题描述】:

如果我有使用 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 并从我的数据库中只选择那些订单?

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    您可以通过SessionAs&lt;T&gt; 方法访问您键入的 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;
        }   
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多