1

Web アプリケーションがありweb.config、必要なすべての設定を備えたデフォルトがあるため、フォルダーを作成する必要があり、そのフォルダーに、親アプリケーションと同じメンバーシップ テーブルを使用してログイン ページを実装しています。特定のロールにそのフォルダーへのアクセスを許可しようとしています。次のマークアップを使用して、そのフォルダーに web.config を追加してみました。

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authorization>
            <allow roles="customers"/>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>

私が抱えている問題は、これを追加してログインしようとするとReturnUrl、親の web 構成に次の行があるため、親のログインページに送信され、それが表示されることです。

<authentication mode="Forms">
    <forms loginUrl="~/login.aspx"  timeout="20160" />
</authentication>

だから私はそれをフォルダー内のweb.configに追加することにしましたが、正しいURLを使用して:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authentication mode="Forms">
            <forms loginUrl="~/pages/customerlogin.aspx"  timeout="20160" />
        </authentication>
        <authorization>
            <allow roles="customers"/>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>

しかし、今ではこのエラーが私に伝えています:

例外の詳細: System.Web.HttpException: タイプ 'Intelligencia.UrlRewriter.RewriterHttpModule' を読み込めませんでした。

私の質問は、web.configそれが機能するようにその子に何を追加する必要があるかということだと思いますが、必要な他のすべてのものを親から継承しませんか?. サブフォルダーの web.config 設定のこの種の問題に取り組んだのはこれが初めてです。

注(更新):フォルダはアプリケーションに変換されました

4

2 に答える 2

0

あなたが言う時:

<deny users="?"/>

識別されていないユーザーがログイン前にページを実行することを許可しないと言っています。

そのログイン後にのみ、ユーザー ロールを評価できます。そのため、ログイン ページは 1 つだけにして、ユーザーの役割に基づいて別のサブサイトにリダイレクトする必要があります。

フォルダーがアプリケーションになっている場合は、構成ファイル全体が必要です。

于 2013-01-24T18:38:19.210 に答える
0

親 web.config から継承したくない場合は、子 web.config で、継承したくない構成セクションの最初の子要素として次の行を追加できます。

子構成の例

<system.web>
      <clear />
      <!-- add child config settings here -- >
 </system.web>
于 2013-01-24T18:50:54.357 に答える