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

时间:2012-02-20 08:19:39

标签: asp.net web-config asp.net-authorization

如何在web.config中指定root位置以允许未经身份验证的用户访问它?

根位置由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="">(网站完全失败)并且无法使其正常工作。

有什么想法吗?

10 个答案:

答案 0 :(得分:37)

试试这个:

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

答案 1 :(得分:6)

仅使用

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

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

答案 2 :(得分:2)

你可以通过2方法实现

方法1:

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

IIS7 setting to add your default page redirection

方法2

您可以浏览此网址ASp.NET Membership来设置您的网络配置设置。

如果您需要更多详细信息,请与我们联系。

答案 3 :(得分:2)

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

答案 4 :(得分:2)

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

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

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

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

答案 5 :(得分:1)

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

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

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

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

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

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

删除

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

答案 6 :(得分:0)

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

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

然后使用位置块

保护您的其他文件夹
<location path=“AccessDenied.aspx“>
    <system.web>
        <authorization>
            <deny users=“?“/>
        </authorization>
    </system.web>
</location>

答案 7 :(得分: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>

它对我有用。

答案 8 :(得分:0)

默克是对的!

我用过

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

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

答案 9 :(得分:-4)

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