如何使用表单身份验证保留默认页面?

时间:2011-08-21 07:22:13

标签: asp.net forms-authentication

我有一个使用表单身份验证的网站,我的困境是我需要用户在首次使用“www。[site] .com”导航到该网站时点击Default.aspx页面。然后,他们可以选择单击登录链接以重定向到登录页面并从那里登录该站点。

现在,只要您申请该网站,您就会获得登录页面。我不确定我是否正在使用正确的方法?

有什么想法吗?

更新:像这样的流程:

  1. 导航至www。[site] .com
  2. 获取Default.aspx
  3. 点击LoginStatus配置了图片的控件
  4. 重定向到Login.aspx
  5. 考虑到web.config看起来像:

    <authentication mode="Forms">
      <forms loginUrl="Default.aspx" timeout="20" protection="None" cookieless="UseCookies"/>
    </authentication>
    

    LoginStatus控件是这样的:

     <div class="loginStat">
                <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LoginImageUrl="~/images/Key-icon.png"
                    LogoutImageUrl="~/images/LogOut32.png" LogoutPageUrl="~/" ToolTip="Log in/out" />
            </div>
    

2 个答案:

答案 0 :(得分:1)

如何将DefaultUrl属性设置为“default.aspx”并从表单身份验证标记中排除login.aspx?

根据您的评论进行修改
显然你没有排除login.aspx。将它添加到根目录的web.config中的适当位置(如果login.aspx和default.aspx放在根目录中)

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

答案 1 :(得分:1)

您的问题是您已在“Forms”身份验证标记中将Default.aspx指定为“loginUrl”属性。您的第二个问题可能是您不允许匿名用户访问Default.aspx

将您的web.config修改为如下所示:

<authentication mode="Forms">
    <forms defaultUrl="Default.aspx" loginUrl="Login.aspx" timeout="20" protection="None" cookieless="UseCookies"/>
</authentication>

允许匿名用户在没有表单身份验证的情况下查看Default.aspx自动将其重定向到Login.aspx的关键是将其包含在您的web.config中:

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

这将允许用户在未登录的情况下查看Default.aspx。如果用户是匿名用户,LoginStatus控件将使用“forms”标记的“loginUrl”属性作为要链接的位置,根据您的需要,我的配置将Login.aspx