問題タブ [isinrole]
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.
c# - User.IsInRole は管理者に対して機能しますが、他のユーザーに対しては false
私の _Layout.chtml では、ユーザー ロールに基づいてナビゲーション バーにメニューを表示したいと考えています。簡単に言うと、「管理者」と「ユーザー」の役割があります。これが_Layout.htmlの私のコードです
問題は、「管理者」ロールでユーザーにログインすると、メニューが表示されることです。しかし、「ユーザー」を使用してログインすると、何もありません。(User.IsInRole("User")) が false であるかのように。ユーザーが正常に認証されました (「間違ったパスワード」の警告はありません)。これの原因は何ですか?
更新:これまでに試したことは次のとおりです。1. ユーザー (「ユーザー」ロールを持つ) ロールを「管理者」に変更すると、ユーザーはメニューを表示できます。2. コードの配置を変更します (「ユーザー」の場合は「管理者」、そうでない場合は「ユーザー」)、ユーザーはメニューを表示できません。
「管理者」ユーザーでログインすると、ホームページにリダイレクトされ、メニューが表示されます。「ユーザー」ユーザーを使用してログインすると、ログインページに残り、ユーザー名テキストボックスはそのままで、パスワードテキストボックスは空白になり、警告は一切表示されません
「Admin」ユーザーでログインすると、「User.Identity.IsAuthenticated」が true になります。「ユーザー」では、その False です。
すべてのコントローラーで、これを追加しました... [Authorize(Roles = "Admin,User")]
...すべて無駄に。
c# - 新しいセキュリティ トークンを取得する IsInRole
WindowsPrincipal の IsInRole メソッドを使用して、WPF および Winforms アプリのグループ メンバーシップを確認しています。私は任意の AD ユーザー (実際にコンピューターにログインしているユーザーである必要はありません。私が行っていることによっては、必ずしも認証する必要はありません。基本的な情報レベルのトークンを使用するだけです) 用の ID トークンを生成しています (適切な名前は「IDトークン」だと思います)。
このコードが特定のコンピューターで初めて実行されると、オペレーティング システムは、指定されたユーザーの ID トークンを生成します。その後、そのトークンは IsInRole 関数によって使用され、グループ メンバーシップが検証されます。速いのでとても気に入っています。ただし、WindowsIdentity/WindowsPrincipal を作成するための後続の呼び出しは、新しいトークンを作成するのではなく、既存のトークンを参照します。トークンを更新する方法を知っている唯一の方法は、コンピューターからログアウトするか、再起動することです (これにより、トークン キャッシュがクリアされます)。キャッシュされた ID トークンをリセットするより良い方法を知っている人はいますか?
コード例 C#:
VB:
vb.net - vb.net で 4.6.2 フレームワークに移行した後、My.User.IsInRole() が機能しない
現在、フレームワークを 3.5 から 4.6.2 に変更する必要がある 1 つの移行リクエストに取り組んでいます。ここでの問題は、メソッドの下のフレームワークを変更した後、期待どおりの結果が表示されないことです。
My.User.IsInRole()
返品中null
です。
上記と同等のコードを提案するか、Visual Studio で問題を解決する手順を提案してください。以前に問題に直面しMy.User.Name
てコードを変更しましたEnvironment.Username
が、このために代替方法を見つけることができません。
c# - User.IsInRole("Admin") が _Layout.cshtml で常に false を返す
layout.cshtml で、現在のユーザーが管理者かどうかを確認しています。その場合は、別のメニューが表示されます。ただし、管理者でログインしている場合でも、常に false が返されます。以下のコードを使用しています。