Windows 認証とカスタム ロール プロバイダーを同時に使用しながら、ASP.NET アプリケーションに "Act As" 機能を実装しようとしています。基本的に私ができるようにしたいのは:
- Windows 認証を使用して現在のユーザーのドメイン アカウントを取得し、承認されたドメイン ユーザーであることを確認します
- カスタム ロール プロバイダーを使用して、SQL Server データベースから権限情報を取得します。
- アプリケーションの管理者が実際にそのユーザーとしてアプリケーションにログインする必要なく、別のユーザーとして「行動」できるようにする機能を実装します。
私が実現しようとしているシナリオは、アプリケーション管理者が問題のあるユーザーを支援しようとしていて、「行動する」ボタンをクリックしてそのユーザーとして行動し、アプリケーションを彼らが見るように見るというものです。そのため、ロール プロバイダーは、現在のユーザーが別のユーザーとして行動していることを理解し、現在のユーザーではなくそのユーザーのアクセス許可情報を取得する必要があります。
私の計画は、ロール Cookie を削除し、ユーザーが現在別のユーザーになりすましていることを示す値をセッション変数に追加する偽装機能を実装することでした。ただし、承認が発生した時点でセッションが設定されていないため、これは不可能です。管理者のマシンで潜在的に永続的な状態を引き起こしたくないので、Cookie を使用したくありません (管理者がアプリの別のウィンドウを開いて、別のユーザーとして行動したり、自分のデータを表示したりできないなど) )。
セッションが利用できないことを考えると、「Acting as user...」情報を保存する良い方法が (Cookie なしで) 見つかりません。ロール プロバイダーなどを使用して、.NET に組み込まれているセキュリティ トリミングを活用したいと考えています。これはすべて不可能かもしれませんが、誰かが以前にこれを試したか、実装を試みることができる何かについて提案があることを願っています.
前もって感謝します!!