为什么LoginStatus控件不会重定向到webserver根目录下的登录页面?

时间:2014-01-28 01:19:57

标签: asp.net

我在IIS 8上的asp.net 4.5中编码,并且有一个母版页,在菜单中有一个LoginStatus控件。此控件显示在每个页面上。

<asp:LoginStatus ID="LoginStatus1" runat="server" 
CssClass="loginbutton" LoginText="Log In" Width="50" 
LogoutAction="Redirect" LogoutPageUrl="~/Default.aspx" />

如果我浏览到网站根目录中的http://localhost/Default.aspx页面并单击“登录”,我将被重定向到“登录”页面。

我已设置IIS以将Default.aspx显示为默认文档。但是,如果我浏览到:http://localhost/正确显示主页内容并单击“登录”链接,我只是重定向回http://localhost而不是登录页面。

我需要做些什么来确保我可以从主页登录?

================== UPDATE ========================== 我无法理解这一点,所以由于网站根目录的默认文件是'default.aspx'(注意小写),我在Page_Load上输入了以下代码:

       if  (Request.Url.ToString().Contains("default.aspx"))
            Response.Redirect("Default.aspx");

我现在如果有人前往http://localhost/,他们会被重定向到http://localhost/Default.aspx,其中loginstatus控件正常工作。仍然不知道问题的原因,但至少我有一个解决方法。

2 个答案:

答案 0 :(得分:2)

web.config

中指定登录页面
<authentication mode="Forms">
  <forms loginUrl="~/folder/Login.aspx" timeout="2880"/>
</authentication>

答案 1 :(得分:0)

不确定您是否找到了解决方案。我相信我有完全相同的问题。除非url中包含aspx文件,否则该按钮似乎不会回发。例如www.mydomain.com/不起作用,但www.mydomain.com/index.aspx。 我已经使用url映射一起破解了一个解决方案。

<urlMappings enabled="true">
            <add url="~/" mappedUrl="~/index.aspx" />
    </urlMappings>

这确实有效但不完全优雅。 当我使用iis 8升级到新服务器时发生这种情况。 我很想知道你是否找到了更好的解决方案。 谢谢