59

如何在 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="">(网站完全失败)并且无法使其工作。

有任何想法吗?

4

10 回答 10

45

试试这个:

<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>
于 2013-10-03T08:54:34.790 回答
9

只使用

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

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

于 2014-01-06T11:27:00.990 回答
2

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

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

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

  <location path="~/Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
于 2012-11-30T19:40:55.327 回答
2

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

于 2012-11-30T09:51:37.340 回答
2

您可以通过2种方法实现

方法一:

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

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

方法二

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

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

于 2012-11-29T10:16:39.263 回答
1

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

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

之前<system.web>并将该页面设置为您的 Web 服务器中的默认页面。
在 Visual Studio 中,您可以选择页面和“设置为起始页”。

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

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

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

去除

    <authorization>
        <deny users="?"/>
    </authorization>
于 2012-02-20T09:09:32.393 回答
0

用这个 :

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

这个对我有用。

于 2014-09-02T09:01:52.367 回答
0

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

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

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

<location path=“AccessDenied.aspx“&gt;
    <system.web>
        <authorization>
            <deny users=“?“/>
        </authorization>
    </system.web>
</location>
于 2013-08-29T06:35:24.340 回答
0

默克是对的!

我用了

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

在 Windows 网络服务器上(不要问),确保在位置路径的引号之间没有任何内容。将对旧主页的请求重定向到新主页。

于 2015-10-16T21:09:38.133 回答
-4

如果要指定目录的根目录,请使用<location path="" >

于 2012-08-28T23:13:50.523 回答