0

フォーム認証を使用して 1 種類のユーザーを認証するアプリケーションがあります。このアプリケーションには、データベース内の別のテーブルを使用して別のタイプのユーザーを認証する必要があるセクションがあります。この問題は、2 番目のタイプのユーザーのセッションがタイムアウトした場合に発生します。ユーザーは、2 番目のタイプのユーザーのログイン ページではなく、メインの Web.Config のフォーム認証セクションで定義されたログイン ページに移動します。この問題の解決策を探しています。1 つのアイデアは、セクションの IIS でアプリケーションを作成し、フォルダーの Web.Config を作成して、別のフォーム認証セクションを追加することです。私の実験では、これはうまくいかないようです。明らかな何かが欠けていますか?洞察はありますか?

4

5 に答える 5

1

IIRC、認証はフォルダーごとに機能します。したがって、2 番目のタイプの認証を必要とするすべてのページが、独自の構成を持つ特定のサブフォルダーにある場合は、それを実行できるはずです。

ただし、これについて 100% 確信があるわけではないので、より知識のある人が私に反論できる場合は、応答を削除します。

于 2008-09-29T15:38:22.150 に答える
1

構文について再確認する必要があるかもしれませんが、最上位の web.config には任意の数のタグを含めることができます。

<location>...</location> 

内部では、必要なフォルダー/ファイルに個別の構成パラメーターを指定できます。ここを参照してください。

編集: 申し訳ありませんが、コードを適切にフォーマットするのを怠りました

于 2008-09-29T15:41:51.627 に答える
0

<location> タグ内に <authentication> セクションを含めることはできないため、サブフォルダーを独自の IIS (および ASP.NET) アプリケーションとして設定する必要があります。したがって、サブセクションを単独で実行できるはずです。

500.19 は「web.config を読み取れない、または解析できない」というエラーだと思います。詳細はありますか? それらを表示するには、リモート エラーを有効にする (またはイベント ビューアをチェックする) 必要がある場合があります。問題が解決しない場合は、web.config のスニペットを投稿してください。

余談ですが、私は入れ子になったアプリのファンではありませんでした。おそらく、通常の Login.aspx ページで MemberOf として処理するか、SpecialUserLogin.aspx などにリダイレクトすることをお勧めします。入れ子になったアプリは、IME をセットアップしてテストするための PITA です (たとえば、Cassini で動作させることさえできないと思いますが、2 つの別々のプロジェクトを実行して、デプロイ時に組み合わせることができます)。

于 2008-09-29T18:27:17.530 に答える
0

はい、できます。Web.config ファイルには、オーバーライド機能を備えたツリー状の継承アーキテクチャがあります。つまり、そこに web.config ファイルを配置し、別の構成設定を指定することで、サブフォルダー内の設定を変更できます。

于 2008-09-29T18:41:38.137 に答える
0

私がこの問題を理解している方法は、2 つの解決策があり、1 つ目は役割を調べることであり、プロバイダー モデル全体から始めるのが最適です。それ以外の場合は、アプリケーションを 2 つの部分に分割し、2 番目のユーザー タイプ領域を分割してから、仮想ディレクトリを介してメイン プロジェクトに戻すことをお勧めします。仮想ディレクトリは親ディレクトリ web.config からアクセス許可を継承することに注意してください。そのため、<Location>タグを使用して仮想ディレクトリの認証を削除し、仮想ディレクトリ web.config 内で新しいフォーム認証を定義する必要があります。これは、フォーム認証で Windows 認証 (NTLM) が必要な場合にうまく機能します。

于 2008-09-29T19:08:00.180 に答える