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

问题描述:

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

现在,无论您何时请求该网站,您总是会获得登录页面。我不确定我是否使用了正确的方法?

有什么想法?

更新:这样的流程:

  1. 导航到www [现场] .com上
  2. 获取Default.aspx
  3. 单击带有图像
  4. 重定向到Login.aspx
配置 LoginStatus控制

考虑到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> 

如何设置DefaultUrl属性设置为 “Default.aspx的” 和exlude从表单认证标签的login.aspx的?

根据你的评论编辑
显然你并没有排除login.aspx。增加这个在您的根web.config文件内的适当位置(如果login.aspx的和Default.aspx的都放在根内侧)

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

我已经这样做了,而我之所以觉得这不是直接的方法,是因为具有登录图片的控件总是将您重定向到默认页面,在这种情况下,我必须使用链接图像或其他东西重定向到登录页面,忘记了表单身份验证的内置代码? – nolimit

+0

你还没有完成我告诉你要做的事情,否则当你打开login.aspx时,你不会被重定向到default.aspx。我编辑了我的帖子。 – citronas

+0

感谢你citronas,我感谢你的回答,我已经在我的web.config中,问题是LoginStatus重定向到默认页面,这是“default.aspx”,而不是“login.aspx”。从我看到的,我认为我应该使用链接的图像或带有自己的代码的href'd图像来进行正确的身份验证。 – nolimit

你的问题是,你有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。如果用户是匿名的,则控制将使用“forms”标签的“loginUrl”属性作为t他的位置链接,这与我的配置将为Login.aspx,如你所愿。

+0

感谢您的回复,你是否建议我不分配任何东西给loginUrl?我实际上最终编写了自己的LoginStatus并添加了更多jQuery的东西。 – nolimit

+0

“loginURL”应该是用户用来登录的URL。就像它在锡上说的一样:) 当您请求该网站时总是得到登录页面的原因是您未允许未经身份验证(又名“匿名“)用户访问”Default.aspx“。这是我答复的第二部分。 –