問題タブ [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.
authorization - ユーザー資格情報に基づいて、使用するデータベースの「コンテキスト」をプログラムで決定できますか?
これは、質問hereのフォローアップです。回答は、過度に複雑で過度に具体的であると思われます (EF、私は使用していません - ORM を使用していません)。
その答えでほのめかされた煙、鏡、魔法よりも、この一般的なシナリオを回避するより簡単な方法が必要です.
注: 私は EF を使用していないため、"context" を括弧で囲みました。つまり、ここで話しているのは文字通りの "dbcontext" ではありません。
だから私は疑問に思いました: ユーザーが認証および承認されているときに、各セッションにグローバル変数を設定できますか?
たとえば、ユーザーが認証/承認されると、どのデータベース コンテキスト/コンテンツをユーザーに提供する必要があるかがわかります。
したがって、Global.asax.cs の Application_Start() メソッドに値を設定してから、RepositoriesInstaller (IWindsorInstaller を実装する) クラスを変更して、ユーザーとユーザーが持つべきデータに基づいて異なる具体的なリポジトリを条件付きで登録するか、条件付きコードを配置することができるようです。具体的なリポジトリ自体で、これまたはそのデータベースインスタンスを使用します。
これは実現可能ですか?1 つの方法 (RepositoriesInstaller を変更する/具体的な Repositories クラスを変更する) が優先されますか?
asp.net-mvc - クレームベースのシステムにおける役割ベースの承認
ASPNET ID を使用して、まったく新しい ASP.NET MVC アプリケーションを構築しています。ロールベースとクレームベースのハイブリッドを併用するか、併用するかを考えています。
ハイブリッドの理由は次のとおりです。役割を使用してより広いレベルのアクセスを制御し (グループを定義します。たとえば、New Your User Group、Sydney User Group)、クレームベースでより高度なレベルのアクセスを制御します。たとえば、コントローラー、開発者、テスター)。
したがって、Sydney ユーザー グループと開発者のみのレベルで制御したい場合は、ロールとクレームの両方を一緒に使用できます。
これは正しいと思いますか? それとも、純粋にクレーム ベースの承認を使用する必要がありますか?
c# - ASP NET API トークンを検証しますか?
バックグラウンド
Visual Studio 2013、ASP ネット WEB API 2
問題
.NET の「標準」メンバーシップ プロバイダを使用していますが、カスタム ログイン メソッドが必要です。そこで、新しいメソッドを追加し、これを使用してトークンを生成しました。
しかし、クライアントでここに指定されたこのトークンを使用して、いくつかの「承認」サービスを使用しようとすると。未承認の例外が発生しています。ここで指定されたトークンが有効であることを確認するにはどうすればよいですか。
そうでない場合、どうすれば有効なものを生成できますか?
asp.net-mvc-routing - 認証を返す ASP MVC RouteConfig エラー リポジトリが見つかりません
私のgitクライアントを使用してaspで承認を試みたので、私のgitクライアントはサーバーから承認を要求されます。Git クライアントにリクエストを送信しようとすると、エラーが表示されました
ここに私のルート構成があります
これは、属性を使用する私のコントローラーです:
そして、これは私の属性 smartgit です
asp.net - ASP.Net での IIS URL 承認チェック
IIS 7 以降で ASP.Net Web フォーム アプリを実行しています。現在、アプリ全体は、IIS を介して web.config で構成された Windows 認証と URL 承認を使用して保護されています。.NET はユーザーが誰であるかを気にしません。現時点では、プロファイルやロールなどはありません。
ユーザーのサブセットがアクセスできるページを (サブフォルダーに) 追加したいので、web.config を次のように変更します。
その後、クライアントは必要に応じて自由に AD グループを追加または削除できます。ただし、現状では、AppXUsers グループに属しているが AppXPowerUsers グループに属していないユーザーには、mySubFolder 内のページへのリンクが表示されます。リンクをクリックすると、当然のことながらアクセスが拒否されます。
現在のユーザーが「mySubFolder」にアクセスできるかどうかを検出する方法はありますか?
この段階で User/RoleManagement を導入するのは少しやり過ぎだと思います。アプリケーションはユーザーに関連する情報を保存する必要がなく、ユーザーが「このページにアクセスできるかどうか」を超えて誰であるかは気にしません。これは現在 IIS の段階で処理されます。
c# - Siteminder による ASP.NET 認証
私たちのサイトは現在、Windows 認証を使用するようにセットアップされています。ユーザー セキュリティ プリンシパルは、要求がコードに到達すると自動的に設定され、特定のファイルへの承認は web.config の承認要素で制御されます。
認証を処理するために、サーバーに siteminder をインストールすることが義務付けられました。このため、ユーザー セキュリティ プリンシパルは自動的に設定されず、変更を加えていないコードでは、承認を決定するユーザーが誰であるかがわかりません。
その問題を解決するために、次のコードを開発しました。siteminder が要求に挿入するヘッダーからユーザー名を取得し、ユーザー セキュリティ プリンシパルを作成します。
このコードは、IIS 上の AppPool の ID が LocalSystem として実行されるように設定されている限り、正常に機能します。ただし、AppPool の ID を NetworkService や ApplicationPoolIdentity などのアクセス許可の少ないものに設定すると、次のエラー メッセージが表示されます。
'/Form1' アプリケーションでサーバー エラーが発生しました。
不正な操作を実行しようとしました。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.UnauthorizedAccessException: 許可されていない操作を実行しようとしました。
ASP.NET は、要求されたリソースへのアクセスを許可されていません。リソースへのアクセス権を ASP.NET 要求 ID に付与することを検討してください。ASP.NET には、アプリケーションが偽装されていない場合に使用されるベース プロセス ID (通常、IIS 5 または IIS 6 および IIS 7 のネットワーク サービスの {MACHINE}\ASPNET、および IIS 7.5 の構成済みアプリケーション プール ID) があります。アプリケーションが を介して偽装している場合、ID は匿名ユーザー (通常は IUSR_MACHINENAME) または認証された要求ユーザーになります。
ファイルへの ASP.NET アクセスを許可するには、エクスプローラーでファイルを右クリックし、[プロパティ] を選択して、[セキュリティ] タブを選択します。[追加] をクリックして、適切なユーザーまたはグループを追加します。ASP.NET アカウントを強調表示し、必要なアクセスのボックスをオンにします。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[UnauthorizedAccessException: 不正な操作を実行しようとしました。]
System.Security.Principal.WindowsIdentity.get_AuthenticationType() +300 System.Web.Hosting.IIS7WorkerRequest.SetPrincipal(IPrincipal ユーザー、IntPtr pManagedPrincipal) +181
System.Web.HttpContext.SetPrincipalNoDemand( IPrincipal プリンシパル、ブール値 needToSetNativePrincipal) +701
System.Web.HttpContext.set_User(IPrincipal 値) +49
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +182 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ, Boolean& completedSynchronously) +266-------------------------------------------------- ------------------------------ バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.1022
また、サーバーのイベント ビューアにもこれが表示されます。
次の例外は、アプリケーション '/Form1' の Web イベント プロバイダー 'EventLogProvider' によってスローされました (アプリケーションの有効期間内に、プロバイダー インスタンスごとに最大 1 つの例外がログに記録されます):
System.UnauthorizedAccessException: 許可されていない操作を実行しようとしました。System.Security.Principal.WindowsIdentity.get_AuthenticationType()
で System.Web.Management.EventLogWebEventProvider.AddWebRequestInformationDataFields (ArrayList dataFields、WebRequestInformation reqInfo) で System.Web.Management.EventLogWebEventProvider.ProcessEvent (WebBaseEvent eventRaised) で System.Web.Management. WebBaseEvent.RaiseInternal(WebBaseEvent eventRaised, ArrayList fireRuleInfos, Int32 index0, Int32 index1)
この記事 ( The following exception was throw by the web event provider 'EventLogProvider' ) によると、問題はコードが EventLog に書き込もうとしているが、アクセス許可がなかったことだと思いました。ただし、記事 ( http://support.thycotic.com/KB/a220/giving-application-pool-access-to-event-log.aspx )で説明されている手順を実行しても、まだ機能しません。
私のコードがサーバー上で何をしようとしているのか、ApplicationPoolIdentity がアクセスできないこと、および ApplicationPoolIdentity に付与する必要がある追加のアクセス許可を特定できることを、誰かが教えてくれることを願っています。
c# - ASP.NET MVC カスタム ロール プロバイダーが機能しない
以下のコードを使用して実装されたカスタム ロール プロバイダーをセットアップしましたが、使用されていないようで、代わりに既定のプロバイダーが使用されています。HomeController を[Authorize(Roles = "Administrator")]
属性で装飾すると、CustomRoleProvider
コンストラクターが呼び出されます (ブレークポイントがヒットするかどうかを確認するためにコンストラクターのみを含めました) が、どのメソッドも呼び出されていません。そして、HTTP Error 401.0 - Unauthorized
ページが残ります。
必要なビットを web.config に追加する以外に、Windows 認証を機能させるために何もしていません。含めないと<allow users="*"></allow>
(明らかにAuthorize
属性を含めないで)401.2.: Unauthorized: Logon failed due to server configuration
エラーが発生するため、機能していると思います。認証されていると思います。
このSO投稿に従ってブラウザのCookieをクリアしましたが、効果はありませんでした。
CustomerRoleProvider
web.config
ホームコントローラー