我有一个在asp.net(vb.net作为后端)制作的网站。 此网站位于http://localhost/TEST。 如果我访问任何像http://localhost/TEST/about.aspx这样的aspx文件,我会被重定向到登录aspx。 Login.aspx在visual studio中设置为起始页。
问题是,如果我访问http://localhost/TEST,我来到一个目录,其中包含所有aspx文件的列表。
如何将访问http://localhost/TEST的任何用户重定向到http://localhost/TEST/login.aspx ??
答案 0 :(得分:3)
你的帖子中有一些混合的概念。让他们组织起来。
首先,VS有一个起始页面。这是在运行带有或不带调试器的网站时使用的起始页面。这只适用于从VS运行网站的情况。部署到IIS后,不再有任何影响。
您要求的是当用户没有明确指定页面时,用户被重定向到的默认页面。您可以在web.config中配置默认页面,如下所示:
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="About.aspx" />
</files>
</defaultDocument>
</system.webServer>
您不想将Login.aspx指定为默认页面。指定主页。如果用户已登录,则不应自动导航到登录页面,您希望他们转到某个主页。
登录页面听起来已经配置正确,因为您提到当您转到about.aspx时它会重定向到login.aspx。这是在web.config文件的身份验证部分中处理的。如果用户尚未通过身份验证,则会重定向到登录页面。
<authentication mode="Forms">
<forms name="asp.ASPXAUTH" loginUrl="login.aspx" protection="All" path="/"/>
</authentication>
我认为您需要更改的唯一部分是将defaultDocument部分添加到web.config。
答案 1 :(得分:1)
在您的文件夹 TEST 中,创建一个名为&#34; default.aspx&#34;的空白网页。如果访问者未登录,则会将访问者重定向到登录页面;如果他们已登录,则将访问者重定向到页面。
答案 2 :(得分:0)
您只需使用web.config
文件并禁用目录浏览。
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>