Identity 2のAspNetUsersテーブルにいくつかのカスタム列を追加しました。C#でMVC5を使用しています。サイトがユーザーを処理する方法に重要なデータを含む列がいくつかあり、ユーザーがこれらの設定を変更できる設定ページがあります。
現在、設定が変更された場合、変更が有効になる前にユーザーは手動でログアウトして再度ログインする必要があり、これは望ましくないことが証明されています。
現在のセッションでユーザーのプロファイルを更新する最も簡単な方法は何ですか?これを有効にするためにログアウト/ログインが必要な場合、Identity 2を使用してこれをどのようにコーディングできますか?いくつかのページがAccountControllerに含まれておらず、AccountControllerでApplicationUserManagerとApplicationSignInManagerにアクセスする方法がわかりません。AccountControllerの外部でこれらのオブジェクトを複製することは正しくないようです。おそらくこれは許容できますか?
これらの設定を変更できるのがユーザー自身だけである場合は、ユーザーがこれらの設定を変更するSignOut
とSignIn
、自動的に実行できます。基本的にこれはすべてSignInManager.SignInAsync
方法で行われます
ユーザーが設定を変更した後、次のようなことができます。
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
if (user != null)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
}
いくつかのページがAccountControllerに含まれておらず、AccountControllerでApplicationUserManagerとApplicationSignInManagerにアクセスする方法がわかりません。AccountControllerの外部でこれらのオブジェクトを複製することは正しくないようです。おそらくこれは許容できますか?
私の意見では使用ApplicationUserManager
とApplicationSignInManager
の外側はAccountController
良いアイデアではありません。強制された場合は、アプリケーションアーキテクチャに問題がある可能性があります。アカウントコントローラーを使用している場合は、ユーザーアカウント処理のすべての機能を担当する必要があります(単一責任の原則)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加