有没有办法使用 ServiceStack 管理用户?
我只发现IUserAuthRepository
有一些方法可以通过姓名、电子邮件和 ID 获取用户的界面。但是如何获取用户列表(带有过滤器和合作)。
谢谢。
有没有办法使用 ServiceStack 管理用户?
我只发现IUserAuthRepository
有一些方法可以通过姓名、电子邮件和 ID 获取用户的界面。但是如何获取用户列表(带有过滤器和合作)。
谢谢。
我认为其中一些取决于您存储数据的位置和方式。
如果您将数据存储在 SQL 数据库中,则应该有 3 个保存用户数据的表User, UserAuth, UserOAuthProvider
。您想要的大部分用户数据可能都在 UserAuth 表中。至少,这似乎是最常被“OrmLiteAuthRepository”引用的表。List<UserAuth>
要使用 OrmLite返回用户列表 ( ),您可以这样做
using (IDbConnection con = DbConnectionFactory.OpenDbConnection())
{
var users = con.Select<UserAuth>();
}
或者使用您喜欢的访问方式。
如果您不使用 SQL 数据库,它会有所不同。我认为您可以为 Redis 执行以下操作。我不认为“配置”是直截了当的,但看起来你是从访问哈希开始的。'HashId' 有两个选项。hash:UserAuth:Email>UserId
当电子邮件地址是键时使用' ',hash:UserAuth:UserName>UserId
当用户名是键时使用''。仅供参考,这些值可能会改变,但我不知道通过 ServiceStack 代码访问它们的方法。
using (IRedisClient client = RedisClientManager.GetClient())
{
var userskeys = client.GetHashKeys("hash:UserAuth:Email>UserId").ToList();
var users = userskeys.Select(k => client.As<UserAuth>().GetById(k)).ToList();
}