問題タブ [asp.net-roles]
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# - ASP.NET のカスタム ロール
e.Authenticated
カスタム認証メカニズム (プログラムで onに設定) でフォーム認証を使用する ASP.NET Web サイトに取り組んでいますprotected void Login_Authenticate(object sender, AuthenticateEventArgs e)
。
ASP.NET サイトマップがあります。一部の要素は、ログインしているユーザーにのみ表示する必要があります。その他は、1 人の一意のユーザー (つまり、変更されることのないユーザー名で識別される管理者) に対してのみ表示する必要があります。
避けたいこと:
- カスタム ロール プロバイダーを設定します。このような基本的なことを記述するにはコードが多すぎます。
- たとえば、サイトマップを削除してコード ビハインド ソリューションに置き換えるなど、既存のコードを変換します。
私がしたいこと:
- 認証イベントでロールを割り当てることができる純粋なコード ビハインド ソリューション。
出来ますか?どのように?そうでない場合、簡単に実行できる回避策はありますか?
asp.net-membership - IsInRole ユーザーがサインインしている場合にのみ機能します
ユーザーがログインしていない場合に HttpContext.Current.User.IsInRole("Customer") が false を返す理由は、ユーザーが匿名と見なされるためだと思います。
ありがとう
c# - ASP.NET メンバーシップ、ロール管理、プロファイルは C# クラス ライブラリで使用できますか?
この情報を winform、wpf、またはコンソール アプリケーションで使用できることはわかっています。しかし、私はむしろ、どのロールを持つどのユーザーが特定のメソッドを実行しているかを判断したいので、それらを決定してさまざまなコードを実行できます。
さらに、デスクトップアプリで。ユーザーはどのようにログインできますか? 特別な winform または wpf ログイン コントロールはありますか?
asp.net - RoleProvider GetRolesForUser() の拡張
のGetRolesForUser()
メソッドはRoleProvider
、ユーザーのログイン名を受け取り、そのユーザーのロールのリストを返します。しかし、私のアプリケーションではこれでは十分ではありません。ユーザーの役割を取得するには、さらにいくつかの情報が必要です。
この追加情報をメソッドに取り込むにはどうすればよいですか?
で持っていますが、 では利用できないSession
ことがわかりました。Session
RoleProvider
私が念頭に置いていたのは、この追加情報を を拡張するクラスにMembershipUser
入れることでしたRoleProvider
。CustomMembershipUser
しかし、 を作成して の一部にする方法がわかりませんMembershipProvider
。これは可能ですか?
簡単な方法はCookie を使用することですが、私はそれを避けようとしています。
asp.net-mvc - asp.netメンバーシップ、特にASP.NET MVCで(ロールではなく)アクセス許可を最適に処理する方法
asp.netメンバーシップ、ロールプロバイダーなどの設定については、たくさんの質問(および情報)があります。マイクロソフトが提供する組み込みのプラットフォームを使用するか、基本クラスを拡張して独自の役割を使用するかどうか。
デフォルトのプロバイダーを拡張し、独自のメンバーシップおよびロールプロバイダーを実装することにしました。さて、私の質問は、特に役割認証に関するものです。
従来は、「マネージャー、管理者、従業員、スーパーユーザー」などの役割を作成していました。しかし、私がより細かい制御であると考える許可に関して、あなたはどうしますか/すべきですか?詳しく説明させてください。
私のasp.netmvcサイト内には、管理、管理、メッセージング、レポートなどのさまざまな領域があります。「管理者」、「マネージャー」、「レポーター」など、それぞれの役割を作成します。適切な役割がないと、次のことができます。サイトのその領域にアクセスできません。したがって、クラスレベルでこれを使用してコントローラー全体をロックダウンします。
しかし、ここで例として1つの領域を取り上げます。メッセージング、およびCRUDに対してよりきめ細かい権限が必要だと言います。メッセージの作成、メッセージの表示/読み取り、メッセージの編集、メッセージの削除など。
最後に私の質問。このより細かい制御をどのように実装するのが最善でしょうか?私が見ているアプローチの1つ(それが良いものかどうかはわかりません)は、すべてに対してasp.netメンバーシップロールを作成することです。だから私は持っているかもしれません...
メッセンジャー(幅広いレベルの役割)、CreateMessage、ReadMessage、EditMessage、DeleteMessage。
一方では、一部のユーザーがメッセージを読んだり表示したりできるようにしたいと思います。ただし、必ずしもそれらを作成または削除する必要はありません。個々のコントローラーアクションには、特定の役割を適用できます。
このアプローチに問題はありますか?もっといいアイデアはありますか?
これまでの解決策
独自のスキーマを作成し、カスタムメンバーシップとロールプロバイダーを実装することにしました。私のスキーマには以下が含まれます。
- ユーザー
- UserProfile
- 許可
- PermissionAssignment
- 役割
- RoleAssignment
翌日か2日は不在になりますが、機会があれば詳細情報を更新します。
asp.net-membership - アプリケーション名が異なる複数のロールプロバイダーを使用する場合、メンバーシップ ユーザーの重複を防ぐにはどうすればよいですか?
'/' の既定のアプリケーション名を使用している単一のメンバーシップ プロバイダーがあります。次に、この共通のメンバーシップ プロバイダー構成を共有する複数のアプリケーションを用意します。各アプリケーションには独自のロール プロバイダー構成があり、それらはすべてメンバーシップ プロバイダーと同じデータベースを共有しますが、異なるアプリケーション名を使用してロールを相互に分離します。
メンバーを作成すると、単一のユーザー レコードが作成されるため、すべてのアプリケーションで共有されます。次に、異なるアプリケーション名を使用するため、各アプリケーションに固有の特定のロールを作成します。
私が抱えている問題は、既に存在するメンバーで Roles.AddUserToRole を呼び出すときです。メンバーシップとロール プロバイダーのアプリケーション名コンテキストが異なるため、ロール プロバイダーはユーザーを認識しません。そのため、ロールが属するアプリケーション名の新しいユーザー レコードの作成に進みます。
メンバーシップ プロバイダーとロール プロバイダー間でアプリケーション名を共有せずに、これらの重複したユーザー レコードが作成されないようにするにはどうすればよいですか?
asp.net - ロールを定義しないデータストアに対して RoleProvider をコーディングするにはどうすればよいですか?
外部のサードパーティ システムと通信するためのカスタム RoleProvider の作成を検討しています。ただし、必要な「役割」はシステムで明示的に定義されているのではなく、システム内の条件に基づいています。たとえば、役割は、特定の委員会に割り当てられた人物、または特定のメンバーシップ レベルにある人物として定義される場合があります。これは、システムには、使用したいロールの概念がなく、ロールを定義するメカニズムがないことを意味します。明らかに、ここではロール メンテナンス メソッドは無意味であり、実装されないままになりますが、ロール クエリ メソッドではロールをどこかで定義する必要があります。
このような状況でロールを定義して使用するにはどうすればよいですか? この情報のために別のデータベースを維持するのは悪夢です。さらに、このフレームワークは、役割がまったく異なる複数の展開で使用されます。ユーザーがその特定の役割に属しているかどうかを判断するために必要なロジックを含む役割オブジェクトを使用して、ある種のシステムをコーディングする必要があると考え続けていますが、それを役割プロバイダー モデルで機能させる方法がわかりません。
露骨に明らかな何かが欠けていますか?私はこれについて完全に間違っていますか?
asp.net - ASP.NET 管理者ユーザーが基本ユーザー アカウントにアクセスできるようにする
現在公開されているASP.Net Webアプリケーションがあり、メンバーシップとプロバイダーの機能を使用し、ユーザーに「基本」ロールを割り当てています。私たちが取り組んでいるのは、管理サイトの開発です。これにより、管理者 (おそらく「管理者」の役割が割り当てられる) が管理サイトにログインでき、そこで「基本」のユーザーのリストにアクセスできるようになります。役割。
管理サイトから、管理者が任意の「基本」ユーザーをクリックして、そのアカウントに効果的にログインできるようにしたいと考えています (「基本」ユーザーがログインする場合と同様に、プロセスでユーザーのプロファイル情報を読み込みます)。 )、管理者アカウントにログインしたままです。
誰かが上記を行う方法を提案できますか?
どんな助けでも大歓迎です。
ありがとう、ブレント
c# - ASP.NET MVC シングル サインオンとロール
次の方法に沿って何かを使用して、2 つの MVC サイト (SiteA と SiteB と呼びます) で動作する基本的なシングル サインオンがあります。
http://forums.asp.net/p/1023838/2614630.aspx
それらは同じドメインのサブドメインにあり、web.config でハッシュ\暗号化キーなどを共有します。同じドメインのすべてのサイトからアクセスできるように、Cookie を変更しました。これはすべて正常に機能しているようです。
サイトは別々のサーバー上にあり、同じ SQL データベースにアクセスできないため、実際にユーザー ログインの詳細を保持しているのは SiteA だけです。SiteB にはメンバーシップ データベースがありますが、ユーザーは空です。
これは、次の必要なシナリオでうまく機能します。
1) ユーザーが SiteA にログインする
2) アプリケーションは、SiteA (AJAX による) および SiteB (JSONP を使用した AJAX による) からデータをロードします。
「魔法」が起こる場所である SiteA の AccountController に、次の LogOn アクションがあります。
これは、最初のシナリオでは厳密には必要ないいくつかのことを行いますが、私の質問に関連しています。これは、SiteA にログインするユーザーのロール リストを認証チケットの UserData に挿入します。これは、global.asax で次のように SiteB に「復元」されます。
ロールをミックスに追加するまで、上記のすべてが機能します。[Authorize] 属性を使用して SiteB の Controllers\Actions のみを装飾すると、問題なく動作します。しかし、 [Authorize(roles="TestAdmin")] を追加するとすぐに、ユーザーはそのコントローラー アクションにアクセスできなくなります。明らかに、ユーザーを TestAdmin ロールに追加しました。
SiteB で global.asax コードをデバッグすると、global.asax コードをそのままにして問題ないように見えますが、コントローラー自体でブレークポイントにヒットすると、Controller.User と Controller.HttpContext.User は System.ロールが設定されていない Web.Security.RolePrincipal。
私の質問は次のとおりです。SiteB でロールを復元する方法や、これを行う別の方法を知っている人はいますか?
asp.net - ASP.Net メンバーシップのログインに成功し、ログイン ページにリダイレクトする
現在、ASP.Net メンバーシップ アプリケーションで多くの問題が発生しています。
関係のない理由により、古いスタイルの Web.config で指定された資格情報を使用する MembershipProvider 実装と、すべてを許可する RoleProvider を使用しています (ここでは RolesProvider が問題になる可能性があります)。これは、私たちが経験した他のいくつかの問題に対するややハックな回避策であり、この最小限のケースを機能させたいだけであるため、変更できるものではありません。
MembershipProvider の実装は美しく機能しており、自分のマシンでテストするとすべて正常に動作します。ただし、それをテスト サーバーにプッシュすると、認証は成功しますが (トレース ログで Cookie を確認できます)、トレース ログの次のエントリで確認できるように、ログイン ページに直接戻されます。
多くのトレースをコードに追加したので、私は本当に正常に認証しています:
私に与えます:
リダイレクト先の Default.aspx でトレースを試みても、PreInit
イベントは発生しません。
問題は RoleProvider ではないと思います。これは、実際にはすべてに「はい」と言っているだけだからです。
SO:62013、Forums:1318557、およびSO:62013 で言及されているブログ投稿を見てきましたが、どれも違いはありません。
何か考えはありますか?私は完全に途方に暮れています。