如何在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="">
(网站完全失败)并且无法使其正常工作。
有什么想法吗?
答案 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中,您可以通过单击“默认文档”来执行此操作。这里我附上图片供您参考
方法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="" >