問題タブ [authorize-attribute]

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

c# - ASP.NET MVC で [Authorize] の既定の動作をオーバーライドすることは可能ですか?

ASP.NET MVC でデフォルトの [Authorize] 動作をオーバーライドできるかどうか、またはどのようにオーバーライドできるか疑問に思いました。新しいアクション フィルターを作成したり、独自の属性を作成したりできることはわかっています。[Authorize] の動作を単純に変更して、その動作を自分のコードに置き換えることができるかどうかに興味がありますか?

編集:男と女。あなたの意見に感謝しますが、私が書いたように、新しい [XYZAuthorize] 属性を導入するつもりはありません。私はこれを行う方法を知っています。[Authorize] 表記はそのままで、動作を変更したいだけです。

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

asp.net-mvc - asp.netmvcでグローバル認証を取得する方法

私は周りを見回していますが、これに関する仕様が表示されません。間違ったキーワードを検索した可能性があります。しかし、私はここにいるので、何かを尋ねる必要があります.. :)

Authorize Attributeについてはよく知っていますが、アクションにのみ適用されると思います。アクションにアクセスする前に、アプリケーション全体を最初に承認する場合はどうすればよいですか?

[承認]タグをそれらの上に置くためにすべてのアクションで繰り返すのは非常に苦痛です。

どうもありがとうございます

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

asp.net-mvc - .net MVC の AuthorizeAttribute 拡張機能... 2 つの問題/質問

私の最初の質問は、デフォルトの AuthorizeAttribute ではなく呼び出すことができるように、このカスタム拡張機能をどこに配置すればよいかということです。

現在、MVC ソリューション内にすべてのビジネス ロジックを含む新しいプロジェクトを作成しています。ロジック プロジェクト内に、すべてのセキュリティ クラスを含む .cs ファイルがあります。そのファイルに拡張クラスを追加しようとしましたが、コントローラーで、クラスが問題なく表示され、属性を追加してもインテリセンスが吠えませんが、コンパイルしようとすると、型または名前空間のエラーが発生します見つかりませんでした。コンパイルするには、カスタム属性を特別な場所に格納する必要がありますか?

2 番目の質問...最初の質問に関連している可能性があります。AuthorizeAttribute から AuthorizeCore メソッドをオーバーライドしようとしているときに、System.Web.HttpContextBase を httpcontext として渡しています。何らかの理由で、Visual Studio は System.Web.HttpContextBase を解決できません。繰り返しますが、これは、このクラスをソリューションに保存した場所に関連している可能性があります。それとも、これを拡張するために dll をどこかにインポートする必要がありますか?

お知らせ下さい。

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

asp.net-mvc - AuthorizeAttribute 拡張機能から ViewData[] コレクションに追加

アクション メソッドの AuthorizeAttribute をカスタマイズするための拡張クラスを作成しました。特定の条件が満たされたときにビューにメッセージを挿入できるようにしたいと考えています。ユーザーが承認されていないときに共有ビューをロードするために以下のコードを使用していますが、ViewData コレクションにメッセージを追加していません。何かアイデアはありますか?

ViewData["Message"] コレクション項目を呼び出しの上に設定して、ビューを変更しようとしましたが、成功しませんでした。

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

asp.net-mvc - カスタム AuthorizeAttribute + カスタム SiteMapProvider 関連?

コントローラー クラスのカスタム(SiteMapProviderデータベースから入力) とカスタムAuthorizeAttribute(現在のユーザー ロール + 要求されたページを Role_Page データベースに対して検証) があります。

関数を実装する必要がありますSiteMapProvider.IsAccessibleToUser(context, node)。も実装する必要がありますAuthorizeAttribute.AuthorizeCore(context)

これらの 2 つの機能はどのように関連していますか? SiteMapProviderに「属性」を付ける方法はありませんか?

いくつかのコード:


編集: これは解決策かもしれません(内部AuthorizeCore())? contextただしHttpContextBase、 であり、パラメーターとしてIsAccessibleToUser()のみ取りHttpContextます。


現在のコード:

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

asp.net-mvc - ASP.NET MVC - Authorize 属性の拡張

現在、[Authorize(Roles = ".....")] を使用して、ASP.NET MVC 1 アプリでコントローラー アクションを保護していますが、これは正常に機能します。ただし、特定の検索ビューには、検索リストで選択されたレコードと、ログインしているユーザーのセキュリティ権限に基づいて有効/無効にする必要があるこれらのアクションにルーティングするボタンが必要です。

したがって、これらのボタンの状態を判断するために、これらのターゲットコントローラー/アクションをアプリケーションロールと相互参照する DB テーブルにアクセスするクラスが必要だと思います。これは、明らかに、privs を 2 つの場所 (そのクラス/DB テーブルとコントローラー アクション) で維持する必要があるため、面倒になります (さらに、アクションへのアクセスを変更したい場合は、 DB テーブルのエントリを変更するだけでなく、コーディングしてコンパイルする必要があります)。

理想的には、[Authorize] コードでロールを指定する代わりに、ユーザー、コントローラー、およびアクションに基づいてセキュリティ クラスを照会し、ブール値の許可または許可を返すように、[Authorize] 機能を拡張したいと考えています。アクセスを拒否します。これに関する良い記事はありますか - やりたいことが珍しいことだとは想像できませんが、それを行う方法について何かを見つけるのに苦労しているようです (月曜日の朝の脳である可能性があります)。記事http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/を見て、これを行うコードをいくつか開始しました、それは問題なく開始されているようですが、呼び出し元のコントローラーとアクションの値を httpContext から取得する「正しい」方法が見つかりません。リクエスト URL からそれらを抽出するために少しコードをいじることができますが、それは私には正しくないようで、むしろ適切に行いたいと思います。

乾杯

MH

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

asp.net-mvc - [Authorize]属性のアクション固有の許可メッセージを表示します

[Authorize]または[Authorize(Roles="Administrator")]属性がユーザーをサインインページにリダイレクトするときに、アクション固有の承認メッセージを表示する方法はありますか?

理想的には、

私が理解しているように、属性は機能を追加するためのものではありませんが、これは純粋に情報提供のようです。アクション内でこれを行うことはできますが、属性の使用と比較するとエレガントではないようです。

または、

これを行うための既存の方法はありますか、それとも[Authorize]属性をオーバーライドする必要がありますか?

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

c# - パラメータ値を利用するコントローラにカスタム AuthorizeAttribute を使用するには?

ユーザーがアクセス権のないエンティティにアクセスできないように、コントローラー アクションを保護しようとしています。次のコードでこれを行うことができます。

コントローラー アクション自体に属性を追加できるようにしたいと考えています。エンティティへのアクセスを検証するには、コントローラーに渡された値と、ユーザーがアクセスできるエンティティを確認する必要があります。これは可能ですか?

0 投票する
3 に答える
1413 参照

c# - ASP.NET MVC AuthorizeAttributeは値をActionMethodに渡しますか?

私は ASP.NET MVC の初心者にすぎず、特定のタスクを「正しい方法」で達成する方法がわかりません。

基本的に、ログインした userId を HttpContext.User.Identity に保存し、EnhancedAuthorizeAttributeいくつかのカスタム認証を実行するように記述しました。

オーバーライドされたOnAuthorizationメソッドでは、ドメイン モデルがデータベースにヒットし、現在のユーザー ID が渡された routeValue "BatchCode" にアクセスできるようにします。プロトタイプは次のとおりです。

ユーザーが ReviewGroup にアクセスできず、OnAuthorization がアクセスを拒否した場合は、null が返されます。

これで、装飾されたアクション メソッドは OnAuthorization がパスした場合にのみ実行されることがわかりましたが、ReviewGroup を再度取得するためにデータベースに 2 回アクセスしたくありません。

現時点では、ReviewGroup を格納しHttpContext.Items["reviewGroup"]、コントローラーからこれにアクセスすることを考えています。

これは実行可能な解決策ですか、それとも間違った道を進んでいますか?

ありがとう!

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

c# - ASP.NET MVC コードのこのブロックについて説明してもらえますか?

これは、ASP.NET MVC2 (RTM)System.Web.Mvc.AuthorizeAttributeクラスの現在のコードです:-

したがって、「承認済み」の場合はキャッシュを行い、そうでない場合は 401 Unauthorized 応答をスローします。

質問:これら 3 つのキャッシング ラインは何をしますか?

乾杯 :)