4

非常に簡単な質問: サービスにセッション オブジェクトがあります。

var session = this.GetSession(); //IAuthSession
   if (!session.IsAuthenticated)

サービスに渡されたパラメーターに基づいて、セッション クラスの一部の値 (アクセス許可など) を変更できます。それから私はそれらを救いたいです。どのように?

それを行う直接的な方法: UserAuth オブジェクトを作成し、IAuthSession からのすべてのフィールドを入力し、IDbConnectionFactory を取得して保存します。

確かにもっと速くて良い方法がありますが、私はそれを見つけることができませんでした!

より一般的には、IAuthSession と UserAuth を切り替えるにはどうすればよいですか? つまり、IAuthSession オブジェクトが与えられた場合、UserAuth オブジェクトを取得して変更し、変更を保持するにはどうすればよいでしょうか?

ユーザーのログイン情報にメタデータを追加する方法に関するこの質問を読みましたが、まだ何かが欠けています。

必要なものを追加したら、どのように保存しますか? (セッションと UserAuth の両方にメタデータを追加し、IDbConnectionFactory を使用して後者を保存するとは思えません。もっと良い方法があるはずです!)

4

1 に答える 1

3

古い質問ですが、答える価値があります。

使用されているには、変更を保存するために呼び出すことができるメソッドUserAuthRepositoryの実装が必要ですUpdateUserAuthUserAuth

UpdateUserAuth(UserAuth existingUser, UserAuth newUser, string password)

もう 1 つの簡単な方法は、既存の登録済みユーザーを更新するRegisterServiceusingを呼び出すことです。PUT

/// <summary>
/// Update an existing registraiton
/// </summary>
public object Put(Register request)
{
   return Post(request);
}

サービス呼び出しは次のようになります。

using (var authService = base.ResolveService<RegisterService>())
{
   var authResponse = authService.Put(
       new Register {
           UserName = session.UserName ?? session.Email,
           Email = session.Email,
           etc...
       });

   if (authResponse is IHttpError)
     throw (Exception)authResponse;
}
于 2015-03-30T20:43:32.400 に答える