問題タブ [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 投票する
1 に答える
862 参照

security - 現在のユーザーは LocalSystem チェックですか?

C# .NET 4.0 コンソール アプリを実行しているユーザーがローカルの Administrators グループのメンバーであるかどうかを判断するのは簡単です。また、LocalSystem で実行されているかどうかを判断しようとしています。それを行う最善の方法は何ですか?

0 投票する
6 に答える
10244 参照

c# - ASP.NET MVC でカスタム IPrincipal に簡単にアクセスするにはどうすればよいですか?

いくつかの追加フィールド (ユーザー名に加えて電子メールとユーザー ID) を含むカスタム プリンシパル オブジェクトを作成しました。

これらのプロパティにアクセスするには、Context.User オブジェクトをカスタム プリンシパルとしてキャストする必要があります。

このカスタム プリンシパルは、global.ascx の Application_AuthenticateRequest を介して作成/逆シリアル化されます。詳細については、こちらで質問したこの質問をご覧ください。

ただし、ユーザーが認証されていない場合、CustomPrincipal へのキャストは失敗し (上記のメソッドに挿入されないため)、(User as CustomPrincipal) の結果は null を返し、null 参照が返されます。上記の方法でメールを取得しようとすると例外が発生します。

この問題のクリーンな解決策は何でしょうか? カスタム プリンシパルへのアクセスを簡単にしたいのですが、次のことを行うのは面倒に思えます。

これがこの状況を処理する唯一の方法ですか?

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

c# - ASP.NET MVC でフォーム認証を使用したカスタム IPrincipal

これは簡単なはずですが、グーグルで検索してもわかりません。これが私が欲しいものです。承認したいカスタム ユーザー テーブル (現時点ではロールはありません) があります。このためには、既に行ったカスタム メンバーシップ プロバイダーを実装する必要があります。私の質問は、カスタム IPrincipal を HttpContext.Current.User に設定するにはどうすればよいですか? それはどこで起こるべきですか?次の設定があるとしましょう:

次に、カスタム ユーザー クラスを実装IPrincipalし、IIdentity

だから私の質問は、 Context.User をこのカスタムユーザーのインスタンスに設定する正しい場所はどこですか? カスタム Authorize 属性が必要ですか? もしそうなら、それはどのように見えますか?

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

asp.net-mvc-3 - ASP.NET カスタム プリンシパルと Cookie (チケット)

5 つのカスタム プロパティ (phoneNumber など) を持つカスタム プリンシパルを作成した場合、プリンシパル データは Cookie 内で転送されますか?それともデータはサーバーに残りますか?

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

asp.net-mvc-3 - MVC3 + Ninject:ユーザーIPrincipalを注入する適切な方法は何ですか?

ユーザーIPrincipalを挿入するための次の2つの例を見ました。

方法1:

方法2:

両者に違いはありますか?1つが好ましいですか?

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

c# - ベースコントローラーASP.NETMVC3のこのカスタムプリンシパルはひどく非効率的ですか?

久しぶりですが、SOについては初めての質問ですので、どうぞよろしくお願いします。

私が使用ASP.NET MVC 3しているカスタムを作成してPrincipal、現在のユーザーに関する情報を標準よりも少し多く保存できるようにしたいので、データベースに頻繁にアクセスする必要はありません。それは私が求めているかなり標準的なものです。最初にメールアドレスとユーザーIDを言ってみましょう。

オブジェクトをセッションに保存することはお勧めできないことを認識しているため、オブジェクトをキャッシュに保存することにしました。

また、オブジェクトをキャストし続ける必要がないので、コントローラーでオブジェクトUserをオーバーライドしたいと思いました。Userだから私はただ行っUser.UserIdて何かを保証することができます。

そこで、次のようなカスタムプリンシパルを作成しました。

そして、私はこのようなベースコントローラーを持っています:

見てみると、ユーザーがログインしていない場合、オブジェクトへの呼び出しは次のコードを実行する必要があることがすぐにわかりUserます。

これは私にはひどく非効率的だと感じますが、不足しているもののために空のオブジェクトを作成するだけです。

正常に動作します。

だから、これが実際に大丈夫で、パフォーマンスと効率についてそれほど肛門的であるのをやめるべきかどうか、または私の恐れが正しいかどうかを知りたいと思います。その場合、代わりに何をすべきですか?[「命を得る、仲間!」と言わないでください]

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

c# - ActiveDirectoryに対して認証する

私は少しグーグルをしました、そして私はこの有望なコードに出くわしました

userNameは、Windowsのログイン名として初期化されます。文字列でもありますtb.Text.ToString()は、パスワードの入力に使用されているテキストボックスです。

更新されたコードとそれは機能しています。皆さんありがとう

MSDNによると、PrincipalContextは2つの引数を使用できます

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

wcf - WCF CustomRoleProvider と原則のアクセス許可

編集: WCF サービスが SSL に移動されると、SSL PrincipalPermission.Demand()を使用しているため、問題は以下の問題に関連している可能性があると思います

私は安全な一連の Web サービスに取り組んでおり、ユーザーを認証するために CustomRoleProvider と CustomMembershipProvider を実装しました。

これはうまく機能しますが、ユーザーが認証されていない場合、サービス呼び出しの大部分へのアクセスを制限したいと考えています。

私はこれを達成するために以下を使用することを計画しました

ただし、これはユーザーが認証されたときに検出されないようで、常にセキュリティ例外がスローされます。何が間違っていたのかよくわかりません。

認証サービスの呼び出し内で、メンバーシップ プロバイダーが true を返し、フォーム認証 Cookie を設定するかどうかを確認します。

次のように、Web構成でサービス承認を設定しました。

どんな助けでも大歓迎です、ありがとう

編集:

この問題をさらに調査したところ、プリンシパルが正しく設定されていることがわかりました。私は次の Service メソッドを持っています。その中でプリンシパルを取得し、ユーザーが正しい役割にあるかどうかを確認し、最初のタグが行っていることを効果的に実行します。

このメソッドは現在、毎回 SecurityException をスローしますが、最初にプリンシパルのアクセス許可をコメントアウトすると、メソッドは機能し、true を返します。

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

asp.net-mvc - カスタム IPrincipal オブジェクトで RolePrincipal をラップできますか?

フォーム認証を使用して、ASP.NET フレームワーク内でカスタム メンバーシップおよびロール プロバイダーを使用しています。これらはうまく機能しています。ロール プロバイダーは、Cookie を使用してロールを永続化し、Web 要求ごとにデータベースへのトリップを保存します。また、FormsAuthenticationTicket 内で UserData 文字列を使用して UserId を格納しています。

DAL を Web プロジェクトから独自のプロジェクトにリファクタリングする必要があります。DAL は、現在のユーザーの ID の取得と、役割の権限のチェックに依存しています。DAL プロジェクトで System.Web を参照せずに Thread.CurrentPrincipal を使用できるようにするには、認証システムをどのように変更すればよいですか?

現在、Provider Framework は RolePrincipal および FormsIdentity オブジェクトを作成し、それを Thread.CurrentPrincipal にアタッチします。

Application_PostAuthenticateRequest イベント中に RolePrincipal の周りにカスタム IPrincipal ラッパーを作成することを考えました。このイベントでは、FormsAuthenticalTicket から UserID を取得し、RolePrincipal と共にこの新しい wrapperPrincipal に渡すことができます。

これは有効なアプローチですか?プロバイダーの構造をいじることによって、プロジェクトのさらに下の方に問題が発生することになりますか?

ありがとう、キース

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

asp.net-mvc - IPrincipalの実装に関する問題

IPrincipal(ASP.NET MVC 3)を実装しようとして問題が発生した場合:カスタムIPrincipal:

シリアル化/逆シリアル化するには、次のクラスを使用します。

アプリケーション認証イベントは次のとおりです(正常に動作します!)

最後のステートメントでわかるように、HttpContextにはこの新しいDealsPrincipalが割り当てられます(これは正常に機能します)。

問題は、Controller(Action)でこのユーザーにアクセスしたい場合、常に基本クラスオブジェクトを取得することです。次のようにユーザーをキャストした場合:

たとえば、UserIdを取得します(サンプル:

これは常にnullです!!! なんで?私は何が欠けていますか?