問題タブ [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.
c# - MVC フレームワークによって呼び出されないカスタム AuthorizeAttribute
私のカスタム AuthorizeAttribute が私の MVC WebApi で機能しない理由を見つけようとして、私はインターネットのいたるところにいました。SOでこの種のことについて尋ねる人を見てきましたが、私の問題を解決するのにまだ何も役立っていません:
System.Web.Mvc
とは対照的にから拡張していSystem.Web.Http
ます。しかし、私のAuthorizeCore(HttpContextBase httpContext)
は決して呼び出されません。
CustomAuthorization
クラスにはparams string[]
、特定のアクションに必要なカスタム権限の名前である を受け取るコンストラクターがあります。
私が達成したいと思っていることは、[CustomAuthorization]
属性で装飾されたアクションに対してリクエストが行われるたびに、認証コードが起動されるようにすることです。また、承認が失敗した場合に、より説明的な認証失敗メッセージを返せるようにしたいと考えています。だけでなく:
これにはオーバーライドHandleUnauthorizedRequest
が含まれると思いますが、JSON 応答がシリアル化する独自のオブジェクトを提供するにはどうすればよいですか?
要約すると、アクションを自分の[CustomAuthorization]
属性で装飾しても、フレームワークによって承認コードが呼び出されることはありません。アクション内のコードを実行するだけです。
第 2 に、カスタム JSON オブジェクトをシリアル化するための無許可の応答を実装するにはどうすればよいですか?
事前にご協力いただきありがとうございます。
asp.net-mvc - コントローラーでカスタム認証を取得した後、1 つのアクションにパブリックにアクセスしますか?
私は MVC 3 を使用しており、コントローラーで AuthorizeAttribute を継承するカスタム認証属性を持っています。ただし、あるケースでは、認証なしでこのコントローラーから 1 つのアクションにアクセスしたいと考えています。出来ますか?
そのコードはすでに運用されているため、コントローラーファイルに変更を加えずに実行したいと考えています。Web 構成からオーバーライドする方法はありますか。
asp.net-mvc-3 - MVC は Authorize Roles の値と厳密に型指定されたロールを構成します
特定のロールに対してコントローラを承認するには、コントローラ クラスに次の属性が必要です。
これには、コントローラーでロール名をハードコーディングする必要があり、柔軟なソリューションではないようです。私の質問は、web.config でそのロールの値を指定し、コントローラーでそのキーを使用することは可能ですか?
そしてコントローラーでは、
もう 1 つの質問は、厳密に型指定されたロールを使用してコントローラーを承認できるかどうかです。
asp.net-mvc - Asp.net MVC4: コントローラーとアクションの両方で承認する
コントローラーとアクションの両方に Authorize 属性がある場合、どちらが有効になりますか? それとも両方が有効になりますか?
asp.net-mvc - AuthorizeAttributes を使用してコントローラーからリダイレクトするにはどうすればよいですか?
AuthorizeAttributeBase
拡張するを作成しましたAuthorizeAttribute
。次のようになります。
許可されたロール名を次のように保持します。
そして、私のベースを次のように使用します:
最後になりましたが、コントローラ:
今私がしたいのは、インデックススイッチがAuthorizeAttribute
s に基づいて値を返すようにすることです。Teachers を にTeachersIndex()
、Administrators を にしAdministratorsIndex()
ます。
これをベースに追加してみました:
AutorizeAttribute
しかし、毎回新しい s を作成する必要があります。それを作ることstatic
は私にさらに多くの問題を与えるように見えました。
これについて正しい方法はありますか?
解決しました。:)OnAuthorization
オーバーライドにより、新しいリードが得られました。この質問を見つけました。
Dictionary<string, RedirectToRouteResult>
コントローラーをマジック ストリングで埋めるのではなく、すべてのロール ストリングを 1 か所に保持するという考えが好きなので、リダイレクトを に入れました。
そして、override HandleUnauthorizedRequest
今このように見えます:
c# - カスタム AuthorizeAttribute が呼び出されない
似たような質問がたくさんありますが、これは私を困惑させました。
[Authorize] を使用した場合、ユーザー名とパスワードの入力を求められますが、[InternalAuthorizeV2] を使用した場合は入力しません
今のところ特別なことは何もしないカスタム AuthorizeAttribute があります (間違っている可能性があることを制限しています)。
そしてコントローラーのアクション
ログインは別のアプリで処理されますが、同じ Web 構成行があります
[Authorize] のページに移動してログインし、トラブル ページに戻ると、ユーザー名は表示されますが、顧客属性を呼び出しているようには見えません。
新しい情報: 多くのアプリで使用されているため、私の属性は共有 DLL にあります。csファイルをWebプロジェクトにコピーするとうまくいくようです。理由はわかりませんが、まだヒントやヒントを探しています。
asp.net-mvc - Authorize 属性に対してどのメンバーシップとロール プロバイダーのメソッドをオーバーライドする必要がありますか?
[Authorize]
、属性を使用するには[Authorize(Roles="")]
、[Authorize(Users="")]
MembershipProvider と RoleProvider でどのメソッドをオーバーライドする必要がありますか?
と
提案、記事、チュートリアルはありますか?