ServiceStack でユーザーを管理する方法はありますか?
IUserAuthRepository
名前、電子メール、および ID でユーザーを取得するためのメソッドがいくつかあるインターフェイスしか見つかりませんでした。ただし、ユーザーのリストを取得する方法 (フィルターと co を使用)。
ありがとう。
ServiceStack でユーザーを管理する方法はありますか?
IUserAuthRepository
名前、電子メール、および ID でユーザーを取得するためのメソッドがいくつかあるインターフェイスしか見つかりませんでした。ただし、ユーザーのリストを取得する方法 (フィルターと co を使用)。
ありがとう。
これのいくつかは、データを保存する場所と方法に依存すると思います。
データを SQL データベースに保存する場合、ユーザー データを保持する 3 つのテーブルが必要User, UserAuth, UserOAuthProvider
です。必要なユーザー データのほとんどは、おそらく UserAuth テーブル内にあります。少なくとも、これは「OrmLiteAuthRepository」で主に参照されていると思われるテーブルです。List<UserAuth>
OrmLite を使用してユーザーのリスト ( ) を返すには、次のようにします。
using (IDbConnection con = DbConnectionFactory.OpenDbConnection())
{
var users = con.Select<UserAuth>();
}
または、好みのアクセス方法を使用してください。
SQL データベースを使用していない場合は異なります。Redisの場合、以下のようなことができると思います。「構成」は簡単ではないと思いますが、ハッシュにアクセスすることから始めているようです。「HashId」には 2 つのオプションがあります。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();
}