webentwicklung-frage-antwort-db.com.de

Wie kann ich root (/) in web.config angeben?

Wie kann man den root-Speicherort in web.config angeben, damit nicht authentifizierte Benutzer darauf zugreifen können?

Der Stammspeicherort wird von default.aspx bereitgestellt, die Benutzer sehen default.aspx jedoch normalerweise nicht. Sie sehen nur http://mysite.com/

Also habe ich hinzugefügt 

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

Was funktioniert, wenn der Benutzer auf mysite.com/default.aspx trifft, aber wenn der Benutzer auf mysite.com/ klickt, wird er trotzdem zur Anmeldeseite weitergeleitet.

Ich habe versucht <location path="~"> (hilft nicht) und auch <location path="~/">, <location path=""> (Site schlägt fehl) und konnte es nicht zum Laufen bringen.

Irgendwelche Ideen?

46
Michael

Probier diese:

<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>
35

benutz nur 

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

oder schreibe keinen Pfad, da der Standardpfad root ist (.)

5
mina morsali

Verwenden Sie wahrscheinlich eine Formularauthentifizierung? 

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

Dies löst Ihr Problem. Eine Alternative ist:

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

Sie können durch 2 Methode erreichen

Methode 1:

Sie können den Umleitungspfad auf http://mysite.com/default.aspx in IIS einstellen. Wenn ein Benutzer direkt auf Ihre Site kommt. In IIS7 können Sie dies tun, indem Sie auf Standarddokument klicken. Hier habe ich ein Bild als Referenz beigefügt

IIS7 setting to add your default page redirection

Methode 2

Sie können diese URL ASp.NET Membership aufrufen, um Ihre Webkonfigurationseinstellungen festzulegen.

Lassen Sie es mich wissen, wenn Sie dazu mehr Details benötigen.

2
Chirag Babaria

In der Vergangenheit haben wir dazu einen Ordner für alle Funktionen erstellt, für die ein Login erforderlich ist. Alle aspx gehen in diesen Ordner. Die Wurzel der Site bleibt offen. 

2
b0rg

Wenn Sie nur nicht authentifizierten Benutzern den Zugriff auf default.aspx zulassen möchten, können Sie dies verwenden 

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

vor <system.web> und legen Sie diese Seite als Standard in Ihrem Webserver fest.
In Visual Studio können Sie die Seite und "Als Startseite festlegen" auswählen.

Wenn Sie den Zugriff auf alle Dateien im Stammverzeichnis zulassen möchten, müssen Sie Ordner erstellen, in die Sie Ihre Seiten einfügen, auf die authentifizierte Benutzer zugreifen müssen.

Sie können einen Secure -Ordner erstellen, in dem Sie alle Ihre geschützten Seiten ablegen und Ihre web.config folgendermaßen ändern können:

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

entfernen 

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

Um das Stammverzeichnis anzugeben, müssen Sie es außerhalb des Standortblocks festlegen.

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

und sichern Sie dann Ihren anderen Ordner mit dem Standortblock

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

Benutze das :

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

Für mich geht das.

0
SeyoS

Merk hatte recht! 

Ich benutzte 

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

auf Windows-Netserver (nicht fragen), stellen Sie sicher, dass nichts zwischen den Anführungszeichen für den Standortpfad eingefügt wird. Leitet eine Anfrage für die alte Homepage auf die neue Homepage um. 

0
David P