問題タブ [usermanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
2128 参照

c# - UserManager(Asp.Identity) c# でパスワードを変更する

Asp.Identity の UserManager を介してデータベースの新しいパスワードを更新するベスト プラクティスを提案してください。

現在、以下のアプローチを使用してパスワードを更新しています。これで十分ですか、それとも別のアプローチを使用したいですか?

0 投票する
1 に答える
1033 参照

c# - .Net Core 1 Identity UserManager キャッシュされたユーザー リストが更新されない

環境: .Net Core 1、EF、認証に ID、承認に JWT トークンを使用。

メソッドを使用UserManager.ChangePasswordAsync()するとデータベースが適切に更新されますが、UserManager.Usersリストは更新されません (仮定)。

Startup.cs では単純に を使用してapp.UseIdentity()おり、ApplicationUserServiceコンストラクターではUserManager<ApplicationUser>. それ以外のカスタムは行っていません。

例: ユーザーがパスワードを「password1」から「password2」に変更したとします。そのユーザーがログアウトして再度ログインしても、UserManager はパスワードが「password1」であると認識します。WebAPI サーバーを再起動したら、ログインを試みます。「password2」で期待どおりに機能します。したがって、データベースは間違いなく更新されていますが、UserManager のスコープ/キャッシュは更新されていません。

UserManager のデフォルトの DI スコープが (リクエストごとではなく) シングルトンかどうか疑問に思っていますか? UserStore のキャッシュされたユーザー リストを更新しないと、この問題が発生することがわかりました。

助言がありますか?さらにコードが必要ですか?

ApplicationUserService (簡略化):

[編集]

なぜこれが当てはまるのかはまだわかりませんが、UserManager と SignInManager をコントローラーのコンストラクターに (サービス層ではなく) 直接挿入すると、問題なく動作するように見えることに気付きました。

[編集2]

調査結果の要約:

1) UserManager と SignInManager を Service コンストラクターに注入してから、その Service を Controller コンストラクターに注入しても、完全には機能しません。

2) UserManager と SignInManager を Controller コンストラクターに挿入すると機能します。

3) Controller コンストラクターでの IServiceProvider の使用もテストしました。IServiceProvider を注入し、GetService メソッドを使用してマネージャーを設定しました_userManager = serviceProvider.GetService<UserManager<ApplicationUser>>();。これは#1と同じ結果でした。

#1 & #3: データベースに保存されますが、管理者は後で使用したときにデータの変更に気付かないようでした。どちらの場合も、キャッシュされたデータを更新するために、アプリケーションを再初期化 (サーバーを停止してから開始) する必要がありました。

#3 は #2 と同じように機能するべきではありませんか?

0 投票する
0 に答える
77 参照

c# - メールで検索するようにユーザー マネージャーを変更する - Pipleline はユーザーを返しますが、インターフェイスには何も表示されません

この質問もここに投稿しました:https://community.sitecore.net/developers/f/8/t/3681

こんにちは、みんな、

メールで検索するようにユーザー マネージャを変更しようとしています。Sitecore 7.1 を使用しています。RegEx を使用してメールをチェックするように UserProvider パイプラインを更新しました。検索語が電子メールの場合、メンバーはユーザー名ではなく電子メールで取得されます。

インスタンスごとにデバッガーにアタッチし、テスト ユーザーを検索しようとしました。そのアカウントに「test」という名前を付け、メールを「test.test@ttttt」に設定しました。検索をクリックした後、コードのブレークポイントがヒットし、ユーザーが返されることがわかりました! しかし、インターフェイスには何も表示されませんでした。ユーザー名と電子メールを「test.test@ttttt」に設定して別のアカウントを作成し、デバッガーを再度接続して、電子メールで再度検索するという別のシナリオを試しました。コードでは、2 人のユーザーが返されたことがわかりましたが、インターフェイスには、ユーザー名が "test.test@ttttt" に設定されたアカウントのみが表示されました。この問題を引き起こしている可能性のあるアイデアはありますか? Sitecore.Kernel および Sitecore.Client dll 内の UserManager および UserProvider とともに、UserManager.aspx ファイルを調査しようとしました。

ありがとう!

アルブラー

0 投票する
2 に答える
2163 参照

c# - 非コントローラー クラスで Microsoft.AspNetCore.Identity から UserID を取得する方法

誰かがここで私を助けてくれることを願っています。ASP、MVC、C# は初めてですが、それを学ぶために Web アプリケーションを構築しようとしています。ユーザー用のすべてのコントローラー、ビューなどを作成するデフォルトのアプリケーションを作成しましたが、すべて正常に機能します。

クラスを作成しました。そのクラス内で、ログインしているユーザーのユーザー ID またはユーザー名を取得する必要があります。UserManager と SignInManager をクラスのコンストラクターに挿入しようとしましたが、その呼び出しを呼び出すコントローラーは、必要なパラメーターを渡していないと文句を言います。

これは生意気かもしれませんが、誰かがクラス内からユーザーIDのようなものを取得する方法の基本的な例を持っている場合、おそらく逆方向に作業して何が起こっているのかを理解できるでしょう. オンラインで何時間も検索していますが、うまくいく例が見つかりません。

VS 2015 Asp Core Net RC2 の使用

ありがとう

0 投票する
1 に答える
889 参照

c# - Microsoft Identity - ロールからユーザーを削除しますが、ユーザーはログアウトするまで引き続きアクセスできます

次の方法でロールからユーザーを削除します。

そして、それは私が望むようにほぼ機能します。ただし、現在アプリケーションにログインしているユーザーを削除しても、ログアウトするまで、すべての WebApi 呼び出しを「承認」することができます。私は何を間違っていますか?

編集:

または、特定のユーザーをコードからサインアウトするにはどうすればよいですか?

0 投票する
1 に答える
1746 参照

c# - UserManager を拡張して、新しいユーザー データを管理できるようにしますか?

ASPNET Identity の UserManager には、AddPasswordAsyncや などの機能が含まれていますSetPhoneNumberAsync

ユーザー登録時に値が設定されていなかった FirstName と LastName のプロパティを追加したので、これらの値を管理するための画面を追加します (設定と変更)。

AddNamesAsyncUserManager を拡張して、これを行うような関数を追加するにはどうすればよいですか?

このような関数は、次のように ManageController アクションを評価するときに必要になります。

同じロジックに沿って、次のようにコントローラーに関数を追加したいと思います。

UserManager に関数を追加したり、UserManager を拡張して、ユーザーのカスタム プロパティ値を更新および更新できるようにする関数を追加するにはどうすればよいですか?

0 投票する
1 に答える
692 参照

c# - さまざまなストア (UserStore、UserEmailStore、UserClaimStore、UserLockoutStore など) で使用される UserManager

UserStore を実装しようとしていますが、UserEmailStore と UserLockoutStore なども実装したいと思います。すべての User*Store が UserStore に基づいていることに気付いたので、問題ありません。しかし、UserManager を調べたところ、奇妙なことがわかりました。複数のタイプのストアを UserManager に注入できますが、常に 1 つだけです。ただし、UserManager は、注入したタイプに基づいてそれらすべてを操作できます。

UserManager からの Fox サンプル メソッド GetLockoutEndDateAsync

メソッドthis.GetUserLockoutStoreは次のようになります

などの方法もあります

  • GetEmailStore
  • GetPhoneNumberStore
  • GetClaimStore
  • GetLoginStore
  • ...

したがって、ストアは使用する正しいインターフェイスに基づいている必要があります。

私の質問は、これにどう対処するかです。考えられるすべての User*Store インターフェイスに基づいて 1 つのストアを実装する必要がありますか? または、別の解決策を提案できますか?

前もって感謝します