1

ServiceStack の非常に基本的なユーザーとして、試してみましたが、正しく理解できないことがいくつかあります...

ServiceStack 認証のデータ層として NHibernate を使用するために、次のコードを使用しています。

https://gist.github.com/balexandre/f1217ae8e2a2b1045d47

私は自分のテーブルに新しいユーザーを作成するために少し変更しCreateUserAuthました (ユーザーにはさらにデータが必要で、メタデータ オプションでは十分ではないため)、このコードの 201 行目まで拡張しました。

https://gist.github.com/balexandre/f1217ae8e2a2b1045d47#file-customuserauthrepository-cs-L201

newUserが返され、userId ( newUser.Id) を取得する必要があるため、UserAuth が持つのと同じユーザー ID を使用してテーブルに新しいユーザーを作成できます (CustomUserSession.cs で適切に保存/編集し、ユーザーにいくつかの例に示されているように、ログイン情報)。

正しいユーザー ID を取得するにはどうすればよいですか?

( ) のように UserAuth オブジェクトをカスタム User にアタッチできると本当に思っていnewLocalUser.UserAuthInfoましたが、常にデータベースに User.Id == 0 を持っていることになります

電話newUser.Idの後に取得することも常に同様です。Session.Save(new UserAuthNHibernate(newUser))0

UserAuth の新しく生成された UserId を自分のテーブルにどのように添付しますか? または、単にそのために電子メールアドレスを使用しますか?


元の質問はGoogle グループで利用できます。

4

1 に答える 1

0

プロパティCreateUserAuthを設定するメソッドにコードがありません。newUser.Id多分何か...

var newUserAuthNhibernate = new UserAuthNHibernate(newUser);
Session.Save(newUserAuthNhibernate);
newUser.Id = newUserAuthNhibernate.Id; 

必要ですか?Gist の現在のコードに基づくと、NHibernate は UserAuthNHibernate で作成された新しいインスタンスに Id フィールドを設定するように見えますSession.Save()が、その ID (DB/NHibernate によって生成される) がどこに基づいているかわかりません。その現在のインスタンスがメソッドnewUserによって返されCreateUserAuthます。多分それは UserAuthNHibernate クラスで起こりますか?

于 2014-08-28T02:47:33.940 に答える