問題タブ [iprincipal]

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 投票する
3 に答える
13677 参照

asp.net-mvc-2 - MVC でのカスタム ID と IPrincipal の実装

カスタムの Identity クラスと Principal クラスを実装しようとしている基本的な MVC 2 ベータ アプリがあります。

IIdentity インターフェイスと IPrincipal インターフェイスを実装するクラスを作成し、それらをインスタンス化し、Global.asax の Application_AuthenticateRequest で CustomPrincipal オブジェクトを Context.User に割り当てました。

これはすべて成功し、オブジェクトはきれいに見えます。ビューのレンダリングを開始すると、ページが失敗します。最初の失敗は、次のコード行のデフォルトの LogoOnUserControl ビューにあります。

これを引き出すと、別の「Html.ActionLink」コード行で失敗します。

私が受け取るエラーは次のとおりです。

タイプ 'System.Runtime.Serialization.SerializationException' の例外が WebDev.WebHost40.dll で発生しましたが、ユーザー コードで処理されませんでした

追加情報: メンバー 'Model.Entities.UserIdentity,Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' の型が解決されていません。

MVC でカスタム ID を使用するために、ID に実装する必要がある追加のプロパティはありますか? [Serializable()] を Identity クラスに実装しようとしましたが、影響がないようです。

更新: これを実装するための 3 ~ 4 の代替方法を試しましたが、それでも同じエラーで失敗します。GenericIdentity/GenericPrincipal クラスを直接使用しても、エラーは発生しません。

しかし、CustomIdentity を使用していくつかのプロパティを保持しようとしているので、これでは何の解決にもなりません。IIdentity/IPrincipal インターフェイスを実装するか、CustomIdentity/CustomPrincipal の GenericIdentity/GenericPrincipal を継承すると、上記の元のエラーで失敗します。

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

security - WCF AuthenticationService IsLoggedIn()メソッドをどのようにオーバーライドしますか?

私はこれを行う方法について3つの現在の考えを持っています:

  1. 多くの内部コンストラクターと内部ヘルパーを使用するAuthenticationServiceを再実装します。
  2. カスタムIIdentityおよびIPrincipalタイプを実装し、どういうわけかこれらをFormsAuthenticationにフックします。
  3. あきらめて自分で転がしてください。

問題は、認証とCookieの保存を使用するWebアプリとファットクライアントアプリがあることです。ただし、Webアプリからログアウトしても、ファットクライアントアプリからログアウトすることはありません。これで、更新されたCookieatmを強制する方法があります。

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

.net - ASP.NET で接続が実行されている間、オブジェクトを保持する

ASP.NET を使用して Web サービスを開発していますが、.asmx や WCF ではなく、カスタム サービスであるため、Http クラス (コンテキスト、要求、応答など) を使用しています。セッションが無効になっています。私は独自のハンドラーとモジュールを使用しています。

接続が有効な間、オブジェクトを有効にしてアクセスできるようにしたいと思います。つまり、リクエストが入力され、それに DbCommand を割り当てると、その接続は処理を行っている限りそのコマンドを使用します。その接続が終了すると、オブジェクトを破棄する必要があります。

私はそれを私の IPrincipal 実装に追加できると考えました。その後、接続がモジュールで認証され、ユーザーが取得されたときに、その DbCommand を IPrincipal に追加できるので、コード内のどこからでも取得できます。 、モジュール EndRequest イベントの後、私はそれを処分することができますが、これを行うためのより良いアプローチがあるかどうかはわかりません。

どう思いますか?

乾杯

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

asp.net-mvc - Asp.net Mvc:Ninject-IPrincipal

Ninjectを使用してIPrincipalをAsp.netMvcのHttpContext.Current.Userにバインドするにはどうすればよいか疑問に思いました。

フレンドリーな挨拶、

ピッケル

編集:

それが重要かどうかはわかりませんが、私は自分のCustomPrincipalクラスを使用しています。

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

asp.net - IPrincipal はどのように役割を取得しますか?

仕組みを知る必要がありますSiteMapProvider.IsAccessibleToUser()

フォーム認証の場合に使用する組み込みXmlSiteMapProvider呼び出し。HttpContext.User.IsInRole()System.Security.Principal.GenericPrincipal

現在のユーザーはどこで役割を取得しますか? この種の情報をロードするプロバイダーはどれですか? オーバーロードしてカスタム ロジックを使用したい。

0 投票する
4 に答える
8322 参照

c# - IPrincipalを拡張するasp.net

asp.netでIPrincipalを拡張して、定義するユーザータイプを取得できるようにします。コントローラでこれを可能にしたいと思います

次に、私の拡張メソッドでは、次のようなメソッドがあります

これどうやってするの?出来ますか?ありがとう!

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

asp.net - IPrincipal のカスタム実装で System.SystemException がスローされる: 信頼関係

ログイン資格情報のフォーム認証に部分的に依存する ASP.NET サイトがありますが、IPrincipal の実装は完全にカスタムです。

ただし、特定のサーバー (セキュリティに関しては多少強化されています) でサイトを実行している場合、次のメッセージで IPrincipal.IsInRole() を呼び出すと、アプリがクラッシュします。

System.SystemException: プライマリ ドメインと信頼されたドメインの間の信頼関係に失敗しました。

これは、Web サーバーと DC 間の通信エラーを示していますが、アプリケーションは Windows 認証をまったく使用していないため、DC と通信する必要がある理由がわかりません。

これは私の実装です:

ローカル (動作する場所) でデバッグする場合、実際に実行されるのは正しい実装です。使用法は次のとおりです。

ここでブレークポイントを設定すると、EngineContext.CurrentUser が実際には CustomPrincipal の実装であることがわかります。

誰もこれを経験しましたか?ASP.NET がまだインターフェイス メソッドで LDAP ルックアップをトリガーしているように見えるのはどうしてですか?

http://support.microsoft.com/kb/976494を見つけましたが、私の環境では Web サーバーと DC の両方が 2008 R2 なので、これは当てはまりません。ただし、DC との通信に問題があることを示すエラーがイベント ログにいくつかありますが、LDAP に依存していないため、問題にはなりません。

セキュリティ システムは、サーバー ldap/ddc.domain.com/xxxxxxxxxxxx との安全な接続を確立できませんでした。利用可能な認証プロトコルがありませんでした。

サーバーは私の範囲外です。つまり、これを自分で修正することはできません。ただし、サポートチケットを持っていますが、セキュリティ上の理由から意図的にこの設定を行うことを意図している可能性があります (馬鹿げているように見えますが)。

誰もこの問題を経験しましたか?

フォローアップ:スタックトレースはこれを示しています:

編集:

最終的に、開発マシンでこのエラーを再現できるようになりました (昨日 DC からマシンを取り消しましたが、今日まで再現しませんでした)。

HttpContext.User は実際にはデフォルトで WindowsPrincipal のようですが、私のコードのエラーは、ログイン時に CustomPrincipal に置き換えるだけでした。したがって、認証されていないユーザーは引き続き WindowsPrincipal を取得しますが、AD に信頼の問題がある場合、WindowsPrincipal は恐ろしく失敗します。

appstartでこれを呼び出して、デフォルトのプリンシパルを変更しようとしました

ASP.NET で既定のプリンシパルを変更するにはどうすればよいですか?

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

asp.net-mvc-2 - ASP.NET MVC 2 アプリケーションのプリンシパルにロールが表示されない

ASP.NET MVC 2 アプリケーションを作成していますが、ASP.NET メンバーシップを使用したくありません。コントローラーで Authorize 属性を使用したいと考えています。私がこれまでやってきたことは...

Web.config

私のGlobal.asaxで

将来、いくつかのカスタム プロパティを追加できるように、カスタム IIdentity を使用しています。これをコントローラーアクションでテストするために、これを行いました...

すべてのユーザー情報を含むカスタム ID を確認できますが、プリンシパル オブジェクトにはロールがありません。私が逃したものについての助けは素晴らしいでしょう。ありがとう。

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

.net - アセンブリによる IPrinicpal の変更をブロックする

私のアプリケーションは、多くの異なるプラグイン アセンブリを読み込みます。各プラグインは、独自のサービスを IoC コンテナーに追加でき、メイン アプリケーションによって提供されるすべてのサービスを使用することもできます。

私は自家製のセキュリティ ソリューションから CAS (PrincipalPermissionAttribute と CodeAccessSecurityAttribute から派生した独自のもの) を使用するように移行しています。

読み込まれたアセンブリが System.Threading.Thread.CurrentPrincipal を変更するのを防ぐことはできますか (そのようにして、セキュリティ チェックを回避できますか)?

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

c# - IPrincipal.IsInRole()は、ロール名を切り捨てた場合にのみ機能します-なぜですか?

ユーザーの承認に大きく依存するアプリケーションがあります。その中で、IPrincipal.IsInRole()ユーザーが正しいグループに属しているかどうかを確認するために使用しています。

これはほとんどの部分で正常に機能しますが、プリンシパルがのインスタンスである場合は失敗します(誤った結果を返します)WindowsPrincipal。正しく機能させるには、渡すロールの名前を32文字の長さに切り捨てる必要があることがわかりました(ドメイン名とを含む\)。

その後、役割名の切り捨ては正しく機能します。なんで?これはバグ/機能/文書化された問題ですか?Win2000ドメインに関連している可能性があると思われますが、情報が見つかりません。

いくつかの追加情報:
これは、アプリケーションがその承認にActive Directoryまたは「カスタム」のいずれかを使用するように構成できるため問題です(「カスタム」は、インターフェイスをサポートする任意の承認プロバイダーであり、SQLベース、ファイルベースなどです。 ..)。カスタムが構成されている場合、ロールはほとんどの場合切り捨てる必要がないため、コードでこの特殊なケースに対処する必要はありません。さらに、名前空間内のクラスを使用しSystem.DirectoryServices.AccountManagementてグループメンバーシップを検索するアプリケーションの別の部分があります。これには完全な役割名が必要であり、切り捨てられた場合は機能しません。