問題タブ [asp.net-authorization]
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.
asp.net - mysqlを使用したユーザーのクラス(ロール/メンバー)に基づく承認
Web.config
以前は、一部のユーザーが一部のページ/フォルダーにアクセスできるようにするために編集していました。例:
それは非常に賢くて簡単です。
次に、あるクラスのユーザーがいくつかのフォルダーにアクセスできるようにする必要があります。残念ながら、シングルユーザーの場合ほど簡単ではないようです。ロールとメンバーについて読みましたが、MSSQLデータベースでの実装に関する公式ドキュメントしか見つかりませんでした。
MySqlデータベースを使用してロール/メンバーベースの認証を設定する最も簡単な方法は何ですか?
asp.net-mvc - ASP.NET MVC でパスをロックダウンする方法は?
MVC 3と比較して何が変更/追加/などされたかを確認するために、初めてMVC 4をいじっています。
まず、空の MVC 4 Web アプリケーションを作成し、ゼロから構築を開始しました。
MVC 4 との違いに最初に気付いた点の 1 つは、次の web.config 設定が Web ページのアクセシビリティに影響を与えないという事実です。
MVC 3 に戻ると、上記の承認設定では、すべての匿名ユーザーがサイト内のコンテンツにアクセスすることを拒否していました。ただし、同じ設定を MVC4 Web.config ファイルに追加すると、匿名のユーザーが選択した URL を自由に制御できます。
MVC 3 で行ったようにすべてのパスをロックダウンするには、MVC 4 で何をする必要がありますか?
asp.net - ASP.NET での静的ファイルの保護の難しさ
(Menno からのフィードバックに基づいて更新)
サイトの残りの部分を保護する ASP.NET 認証を使用して、静的ファイル (htm、pdf など) でいっぱいのフォルダーを保護する要求があります。フォルダーは Web のルートにあります。通常の ASP.NET 承認は、Web に対して正常に機能します。唯一の問題は、この特定のフォルダーを保護することです。
アプリケーションのルートにある web.config で次を使用して、「Documentation」フォルダー内のすべてのファイルに対して呼び出されるように、ASP.NET 認証モジュールを再構成しようとしています。
無効。
同じ system.webServer ノードを Documentation フォルダーの web.config に配置しても効果はありません。
同じ system.webServer ノードを Documentation フォルダーの web.config に配置し、Documentation フォルダーをアプリケーションに変換した場合にのみ有効になります。
location ノード内で system.webServer ノードを正常に使用できるという情報は見たことがありませんが、location ノード内で使用されるものに制限があるという情報も見たことがありません。
アプリケーション プールは 4.0 の統合モードで実行されています。私が間違っていることについて何か提案はありますか?
asp.net - ASP.Net 認証の制御下にある Web アプリケーションに Excel ファイルを配置できますか?
特定の Excel ファイルへのアクセスを特定のユーザーのみに許可する方法を探しています。
これはシナリオです:
フォーム認証を行う ASP.Net 4 アプリケーションがあります。増え続ける Excel ファイルのセットに多くのユーザーがアクセスできるようにしたいと考えています。各ユーザーは、いずれかのセットへのアクセスが許可されます。
ユーザーが表示できる Excel ファイルへのハイパーリンクのみを表示するナビゲーション ページを簡単に配置できます。ただし、URL を推測することで、他のファイルも取得できます。
次のシナリオを試してみました: すべての Excel ファイルのベース フォルダーを設定し、その中に各ユーザーのフォルダーを配置します。各フォルダーには、web.config ファイルが配置されます。メイン フォルダーには、次のものが含まれます。
各サブフォルダーは次のとおりです。
これは、フォルダー内のすべての .aspx ファイルに対しては適切に機能しますが、Excel ファイルなどの他の種類のリソースに対しては機能しません。それらへのアクセスは常に許可されます。これは、これらのファイルが ASP.Net ワーカー プロセスによって処理されないことが原因であると考えられます。
正しいユーザーのみにアクセスを手配するにはどうすればよいでしょうか? ASP.Net アプリケーションの仮想ディレクトリの外に Excel ファイルを保存し、Response ストリームを使用して Excel ファイルを出力する ServeExcel.aspx ページを作成することを考えています。これを行うためのより良い方法はありますか?
追記、BrOSsさんのコメントを受けて
「チュートリアル: メンバーシップとユーザー ログインを使用した Web サイトの作成」を読み、テスト サイトを作成しました。すべての手順に従う代わりに、空のプロジェクト テンプレートからではなく、ASP.Net Web アプリケーションから開始し、手順「メンバー専用ページの作成」のウォークスルーに追いつきました。「新しいユーザーの追加」のステップまでそれをフォローしました。ユーザー 'member' にはフォルダー Membership へのアクセスが許可され、別のユーザー 'visitor' にはこのフォルダーへのアクセスが拒否されました。チュートリアルの手順に加えて、「ユーザーを拒否する」というアクセス ルールを追加しました。
Web アプリケーションを実行すると、メンバー ページ ~\MemberPages\Members.aspx は、「訪問者」ではなく「メンバー」に表示されます。
その後、test.xls ファイルをMemberPagesフォルダーに配置します。驚いたことに、このファイルへのアクセスは「訪問者」(および匿名ユーザー) にも拒否されます。
2013 年 1 月 3 日に追加されたメモ: 上記で Excel ファイルを保護する本当の理由は、内部の Visual Studio 開発サーバーを使用したためです。サーバーでは IIS が使用され、既定では IIS 自体が Excel ファイルを提供します。ISAPI フィルターの構成を変更して IIS 6.0 および 7.5 の構成を変更しようとしましたが、最終的にこれは構成の誤りに敏感であるように思われたため、Joe によって提案された解決策を適用しました。
これは、私自身の Web アプリケーションでの私の経験との大きな違いであり、プロジェクト間に大きな違いがあることを発見しました。
私のプロジェクトは ASP.Net メンバーシップを使用していませんが、カスタム ユーザー テーブルを使用しています。また、カスタム コードは global.asax.vb ファイルに存在します。
注: Personクラスは System.Security.Principal.IIdentity インターフェイスを実装します。テスト プロジェクトで同様のコードが実行されるかどうかはわかりませんが、少なくとも Global.asax.cs ファイルや Login.aspx.cs ファイルでは同様のコードは実行されません。
プロジェクトにデバッガーをアタッチしたところ、aspx ファイルの要求ごとに Application_AuthenticateRequest が実行され、毎回 HttpContext.Current.User が何もないことがわかりました。Excel ファイルのリクエスト中に、このコードは実行されません。これが、web.config 承認設定による制限なしでファイルが提供される理由だと思います。
私は別の投稿を見つけました: ASP.NET でのオブジェクトの永続化 (ポストバック間) で、それを詳しく調べて、それが私を助けることができることを確認します。
それでも、多くのプロジェクトで使用される一種のフレームワーク ASP.Net アプリケーションにカスタム機能を追加するコードを書いているので、global.asax ファイルを変更することは許容範囲外になると思います。したがって、私はまだ ServeExcel.aspx/ashx オプションを検討しています。
c# - ASP.NET WebApi FormsAuthentication 401 (未承認) の問題
私は ASP.Net WebApi で承認がどのように機能するかを学んでおり、別の投稿 ( ASP.NET Web API Authentication ) で Darin Dimitrov による回答に出会いました。なぜ 401 を取得しているのかを理解するのに助けが必要です。
Darin のコードに従って、WebApi プロジェクトを作成し、次のコントローラーとモデルを追加しました。
AccountController.cs
ユーザーコントローラー.cs
LogOnModel.cs
テスト用に、2 つのボタンと 1 つのラベルを持つ Web フォーム アプリを作成しました。
Default.aspx.cs
ボタンをクリックして ButtonAuthorizeClick() を実行すると、 Account のコントローラーが起動され、次に Users のコントローラーが起動され、すべて問題ありません。
次に ButtonTestAuthClick() をクリックすると、401 (Unauthorized) エラーが発生します。
Chrome または FireFox で ASPXAUTH Cookie を探しても見つからないため、ButtonAuthorizeClick() が機能する理由と、ButtonTestAuthClick() を機能させるために何をする必要があるかについて 100% 確信が持てません。
誰かが私の道を投げることができる助けをありがとう。
asp.net-mvc - DynamicGridDataでAuthorizeとHandleJsonexceptionを利用した場合、jqgridに認可エラーを返す方法
[HandleJsonException] と ASP.NET MVC 2.0 の Oleg answer のコード jqgrid での検索の実装
ASP.NET MVC2 アプリケーションでユーザーにエラーを表示するために使用されます。
DynamicGridData メソッドも [Authorize] で装飾されています。ページには「ログアウト」ボタンがあります。
ユーザーがログオフしてブラウザーの [戻る] ボタンを押すと、[承認] により、ASP.NET は DynamicGridData の結果として HTML 形式でログオン ページを返します。
この場合、jqgrid は奇妙なエラーを表示します。[HandleJsonException] が他のエラーに対して返すような適切な json 形式でエラーを返す方法は?
生の html を含む判読不能な警告ボックスが表示されます。
参照されている ASP.NET コード
ninject - WebApi を使用して AuthorizeAttribute をサブクラス化すると、401 が返されますか?
AuthorizeAttribute をサブクラス化して、トークン認証を実装できるようにしています。これにより、トークンはリクエスト ヘッダーで渡されます。また、IoC には Ninject を使用しています。オーバーライドされた OnAuthorization メソッドが呼び出され、トークンを検証しますが、それでも 401 を受け取ります。
なぜこれが起こっているのかについてのアイデアはありますか?
TokenAuthorisationAttribute.cs
NinjectWebCommon.cs
c# - カスタムSQL「AdminUsers」テーブルから管理者用のMVC4領域を保護する方法
トークン、roleprovider、membershipproviderを使用してMVCアプリケーションを保護する例をいくつか見てきましたが、私のシナリオに完全に適合するものはありません。これが私の設定です。
- EntityFramework4.3を使用してSQL2008R2にリンクされたVS2012はデータを管理します。
- プロジェクトはIISで基本認証用に設定されているため、empIDを持つすべてのスタッフ、教職員、および学生は、内部または外部で認証できます。これらの人々の一部は管理者であるため、管理エリアで管理されます。
- プロジェクト内に現在セキュリティがない「管理者」領域を作成したので、誰でもdomain / adminと入力して、その領域にリダイレクトできます。この領域には、管理者(CRUD)、予定(CRUD)、設定(U)、ツール、およびレポート機能が含まれています。adminUserセクションと予定セクションには独自のテーブルがあり、CRUDは期待どおりに機能しています。
これが私が求めていることです。AdminUsersSQLテーブルの「Admins」に対して基本認証の現在のユーザーを検証し、これらのユーザーにのみ私の管理領域へのアクセスを許可するにはどうすればよいですか。
お時間をいただきありがとうございます、クリス
asp.net-mvc - ASP.Net MVC 4: Windows 認証後にプロファイルをログイン後に 1 回だけ更新する
ユーザー認証用に Windows 認証が設定されたイントラネット アプリケーションを使用していますが、問題はありません。ただし、Active Directory で見つけたユーザーの完全な表示名を使用します。
実際、ドメインからさらに詳細をプロファイルに入力したいのですが、問題は、アプリケーションへの最初の呼び出しでユーザーが認証された後、この AD クエリを 1 回だけ実行したいことです。AD とプロファイルはすべて機能していますが、ログイン後に 1 回だけ呼び出されるようにコードを配置する適切な場所が見つかりません。カスタム AuthorizeAttribute がその方法かもしれないと思います...どんな助けも大歓迎です。ありがとう!!