3

私のサイトには2つのログインがあります。通常のユーザーの場合はフロントエンドに1つ、管理者の場合はadminセクションに1つあります(それぞれが異なるログイン基準を要求するため、2つのログインが必要です)。adminディレクトリを認証するために、メインサイトのweb.configに次のように「location」要素を設定します。

<location path="Admin">
<system.web>
  <authentication mode="Forms" >
    <forms loginUrl="/Accounts/adminLogin.aspx"/>
  </authentication>
  <authorization>
    <deny users="?"/>
  </authorization>
</system.web>

「Admin」ディレクトリからブラウザにページを入力しようとすると、次のエラーが発生します。

allowDefinition='MachineToApplication'として登録されているセクションをアプリケーションレベルを超えて使用するとエラーになります。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されていないことが原因で発生する可能性があります。

正しくリダイレ​​クトするようにロケーション要素を設定するにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

このエラーメッセージが表示される主な理由は2つあります。

  1. asp.Netアプリケーションをiisで構成していない場合。アプリケーションをiisで実行するように構成していない場合は、最初にサイトをiisで実行するように構成します。そのために、iisから仮想ディレクトリを作成し、アプリケーションにアクセス許可を与えます(読み取り、書き込み)
  2. 上記が問題でない場合は、主に2つ以上のweb.Configの問題があります。サイトを開くと、ソフトウェアがそのアプリケーションのバックアップを作成する場合、ソフトウェアは主にサブフォルダーを作成し、すべてのファイルとweb.Configをコピーします。アプリケーション。このサブフォルダーweb.Configをサブフォルダーから削除するだけです。

設定と構成については、adminフォルダーとメインルートフォルダーのweb.Configを確認してください。

于 2013-02-22T06:36:27.113 に答える
0

サブディレクトリ内で認証モードを変更することはできません。WebApplicationsのみが、アプリケーション全体に適用されるこの設定を定義できます。location要素は、認証設定ではなく、承認を変更するためにサブディレクトリでのみ使用されます。

于 2014-03-21T12:35:30.603 に答える