如何在 web.config 中指定根 (/) 位置?

发布于 2025-01-07 13:41:32 字数 667 浏览 0 评论 0原文

如何在 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/ - 他仍会被重定向到登录页面。

我尝试过 (没有帮助)以及 , (网站完全失败)并且无法使其工作。

有什么想法吗?

How does one specify root location in web.config to allow unauthenticated users access it?

The root location is served by default.aspx, but users normally don't see default.aspx, they just see http://mysite.com/.

So I've added

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

Which works if user hits mysite.com/default.aspx, but if user hits mysite.com/ - he is still redirected to login page.

I've tried <location path="~"> (does not help) and also <location path="~/">, <location path=""> (site fails completely) and could not make it work.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

歌入人心 2025-01-14 13:41:33

只使用

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

或者不写路径,因为默认路径是root(.)

only use

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

or don't write path,because the default path is root(.)

坏尐絯 2025-01-14 13:41:33

您可以通过2种方法来实现

方法1:

您可以将重定向路径设置为http://如果任何用户直接访问您的站点,则在 IIS 中为 mysite.com/default.aspx。在 IIS7 中,您可以通过单击“默认文档”来执行此操作。这里我附上图片供您参考

IIS7 设置添加默认页面重定向

方法 2

您可以通过此 URL ASp.NET 会员 来设置您的 Web 配置设置。

如果您需要更多详细信息,请告诉我。

You can achieve by 2 method

Method 1:

You can set redirect path to http://mysite.com/default.aspx in IIS if any user directly comes to your site.in IIS7 you can do that by clicking on Default Document. Here i attached image for your reference

IIS7 setting to add your default page redirection

Method 2

You can go through this URL ASp.NET Membership to set your web config settings.

Let me know if you need more detail on this.

热风软妹 2025-01-14 13:41:33

我们过去的做法是为所有需要登录的功能创建一个文件夹,并为该文件夹设置 require auth。所有 aspx 都转到该文件夹​​。该网站的根目录保持打开状态。

The way we done it in the past was to create a folder for all functionality that requires login and set require auth for that folder. All aspx go to that folder. The root of the site stays open.

攒一口袋星星 2025-01-14 13:41:33

您可能使用表单身份验证吗?

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

这将解决您的问题。另一种选择是:

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

You probably use a forms authentification no?

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

This will solve your problem. An alternative is:

  <location path="~/Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
洒一地阳光 2025-01-14 13:41:33

如果您只想让未经身份验证的用户访问 default.aspx,您可以

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

之前使用,并将该页面设置为网络服务器中的默认页面。
在 Visual Studio 中,您可以选择页面并“设置为起始页”。

如果您想允许访问根目录中的所有文件,则必须创建文件夹来放置需要由经过身份验证的用户访问的页面。

您可以创建一个安全文件夹,您可以在其中放置所有受保护的页面并通过以下方式更改您的 web.config:

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

删除

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

If you only want to let unauthenticated users to access default.aspx you can use

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

before <system.web> and set that page as default in your web server.
In Visual Studio you can select the page and "Set As Start Page".

If you want to allow access to all the files in the root you have to create folders where you put your pages which need to be accessed by authenticated users.

You can create a Secure folder where you can put all your protected pages and change your web.config this way:

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

removing

    <authorization>
        <deny users="?"/>
    </authorization>
淡水深流 2025-01-14 13:41:33

要指定根目录,您必须将其设置在位置块之外。

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

然后使用位置块保护其他文件夹

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

To specify root directory you have to set it outside the location block.

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

and then secure your other folder using location block

<location path=“AccessDenied.aspx“>
    <system.web>
        <authorization>
            <deny users=“?“/>
        </authorization>
    </system.web>
</location>
云之铃。 2025-01-14 13:41:33

使用这个:

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

它对我有用。

Use this :

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

It works for me.

盗心人 2025-01-14 13:41:33

默克是对的!

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

在 Windows netserver 上使用(不要问),确保在位置路径的引号之间没有放置任何内容。将旧主页的请求重定向到新主页。

Merk was right!

I used

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

on Windows netserver (don't ask), making sure to put nothing in between the quotes for location path. Redirects a request for the old home page to the new home page.

不气馁 2025-01-14 13:41:33

如果要指定目录的根目录,请使用

If you want to specify the root of the directory, use <location path="" >

太傻旳人生 2025-01-14 13:41:32

试试这个:

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

Try this one:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文