web-dev-qa-db-ja.com

web.configでルート(/)の場所を指定する方法は?

認証されていないユーザーがアクセスできるようにweb.configでルートの場所を指定するにはどうすればよいですか?

ルートの場所はdefault.aspxによって提供されますが、ユーザーには通常default.aspxは表示されず、単にhttp://mysite.com/

だから私は追加しました

  <location path="~/default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

ユーザーがmysite.com/default.aspx、ただしユーザーがmysite.com/-彼はまだログインページにリダイレクトされています。

私はもう試した <location path="~">(役に立たない)および<location path="~/"><location path="">(サイトは完全に失敗します)、動作させることができませんでした。

何か案は?

52
Michael Entin

これを試してください:

<system.web>
    <urlMappings enabled="true">
        <add url="~/" mappedUrl="~/default.aspx" />
    </urlMappings>
    <authorization>
        <allow roles="admin"/>
        <deny users="*" />
    </authorization>
</system.web>
<location path="Default.aspx">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>
40

使用のみ

<location path=".">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>

またはデフォルトのパスがroot(。)であるため、パスを書き込まないでください

7
mina morsali

おそらくフォーム認証を使用しますか?

<authentication mode="Forms">
   <forms loginUrl="~/Default.aspx" />
</authentication>

これで問題が解決します。別の方法は次のとおりです。

  <location path="~/Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
2
Demian Flavius

2つの方法で達成できます

方法1:

リダイレクトパスを http://mysite.com/default.aspx in IISに設定できます。IIS$ === IIS7では、それを行うことができます。デフォルトのドキュメントをクリックしてください。ここに参考のために画像を添付しました

IIS7 setting to add your default page redirection

方法2

このURL ASp.NET Membership を使用して、Web構成設定を設定できます。

これに関する詳細が必要な場合はお知らせください。

2
Chirag Babaria

過去に行った方法は、ログインを必要とするすべての機能用のフォルダーを作成し、そのフォルダーにrequire authを設定することでした。すべてのaspxはそのフォルダーに移動します。サイトのルートは開いたままです。

2
b0rg

非認証ユーザーにのみアクセスを許可したい場合default.aspxを使用できます

  <location path="Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

<system.web>そして、そのページをWebサーバーのデフォルトとして設定します。
Visual Studioでは、ページを選択して「開始ページとして設定」することができます。

ルート内のすべてのファイルへのアクセスを許可する場合は、認証済みユーザーがアクセスする必要があるページを置くフォルダーを作成する必要があります。

Secureフォルダーを作成して、保護されたすべてのページを配置し、web.configを次のように変更できます。

  <location path="Secure">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

取り除く

    <authorization>
        <deny users="?"/>
    </authorization>
1
LeftyX

ルートディレクトリを指定するには、ロケーションブロックの外側に設定する必要があります。

<configuration> 
  <system.web>
    <authorization>
      <allow users=“*“/>
    </authorization>
  </system.web>
</configuration>

そして、場所ブロックを使用して他のフォルダを保護します

<location path=“AccessDenied.aspx“>
    <system.web>
        <authorization>
            <deny users=“?“/>
        </authorization>
    </system.web>
</location>
0
Wasa

これを使って :

<location path="Default.aspx">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>
<location path="~">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>

わたしにはできる。

0
SeyoS

メルクは正しかった!

使った

<location path="">
            <system.webServer>
                <httpRedirect enabled="true" destination="http://www.newpathdestination.com" exactDestination="true" httpResponseStatus="Permanent" />
            </system.webServer>
        </location>

windowsネットサーバーでは(質問しないでください)、ロケーションパスの引用符の間に何も置かないようにしてください。古いホームページのリクエストを新しいホームページにリダイレクトします。

0
David P