我将index.html(default.html等)设置为ASP.NET Web应用程序中最常用的默认页面,并希望在用户设置没有页面名称的WebApp的URL时显示它。
我想,如果WebApp的网址类似于“http://www.somewhere.com/testApps/
”,当您在浏览器的地址栏中设置它时,会显示index.html。
但是,如果Web应用程序使用表单身份验证,则它不起作用。
http://localhost/testApps/
”在web.config的最后部分设置以下条目。
到目前为止,当你设置'http://localhost/testApps/Index.html
'时,
显示Index.html。但是当你设置'http://localhost/testApps/
'时,
显示登录页面而不是Index.html
这就是全部。任何建议,建议,打击将不胜感激。
谢谢。
答案 0 :(得分:0)
将此添加到web.config以禁用此页面中的身份验证
<location path="index.html">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="yourcss.css">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
答案 1 :(得分:0)
我找到了解决方案。
我已经改变了解决此问题的方法,并修改了global.asax中的AuthenticationRequest事件处理程序。
正如我所料,当我实现AuthenticationRequest事件处理程序时,很明显,只要调用WebApp的url withount页面就会调用它。 (f.e。&#39; http://localhost/testApps/
&#39;)。当然,在默认页面出现相同的事件处理程序之前。
所以我在global.asax中实现了以下逻辑。
// bind custom method to authenctionrequest event handler.
public Global(): base()
{
this.AuthenticateRequest += new EventHandler(this.MyAuthenticationRequest);
}
// the custom method
void MyAuthenticationRequest(object sender, EventArgs e)
{
var myPage = HttpContext.Current.Request.Url.ToString();
myPage = myPage.Replace(Request.Url.GetLeftPart(UriPartial.Path),
String.Empty);
if (String.IsNullOrEmpty(myPage))
{
if (Request.Cookies["started"] != null)
{
String flg = Request.Cookies["started"].Value;
if (flg == "true")
{
return;
}
}
Response.Cookies.Add(new HttpCookie("started", "true"));
Response.Redirect("Index.html");
}
}
Cookie&#39;已启动&#39; 已设置为即使&#39; Index.html&#39; igonred web.config的条目并再次请求表单身份验证。
通过这种方法,我可以显示&#39; Index.html&#39;当我在表单身份验证的情况下设置&#39; http://localhost/testApps/
&#39;时。
这就是全部。谢谢。
答案 2 :(得分:0)
另一个终极解决方案。这是更容易和实用的方式。
在web.conf中设置以下条目
<urlMappings enabled="true">
<add url="~/" mappedUrl="~/Index.html" />
</urlMappings>
这两种方式都很好,但我自己推荐的方法很简单。
Tnanks。