Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何使用表单身份验证保留默认页面?_Asp.net_Forms Authentication - Fatal编程技术网

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

Asp.net 如何使用表单身份验证保留默认页面?,asp.net,forms-authentication,Asp.net,Forms Authentication,我有一个使用表单身份验证的网站,我的难题是,当用户第一次使用“www.[site].com”导航到该网站时,我需要用户点击Default.aspx页面。然后,他们可以选择单击登录链接以重定向到登录页面并从那里登录到站点 现在,无论何时您请求该站点,都会获得登录页面。我不确定我使用的方法是否正确 有什么想法吗 更新:像这样的流程: 导航到www.[site].com 获取Default.aspx 单击配置有图像的LoginStatus控件 重定向到Login.aspx 考虑到web.config看

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

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

有什么想法吗

更新:像这样的流程:

  • 导航到www.[site].com
  • 获取
    Default.aspx
  • 单击配置有图像的
    LoginStatus
    控件
  • 重定向到
    Login.aspx
  • 考虑到web.config看起来像:

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

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

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


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

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

     <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>
    
    <authentication mode="Forms">
        <forms defaultUrl="Default.aspx" loginUrl="Login.aspx" timeout="20" protection="None" cookieless="UseCookies"/>
    </authentication>
    

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

    我已经这样做了,我觉得这不是直接方法的原因是该控件具有登录映像,始终将您重定向到默认页面,在这种情况下,我必须使用链接图像或其他东西重定向到登录页面,而忘记表单身份验证的内置代码?您没有按照我告诉您的那样做,否则在打开login.aspx时将不会重定向到default.aspx。我已经编辑了我的帖子。谢谢你,我感谢你的回答,我的web.config中已经有了,问题是LoginStatus重定向到默认页面,默认页面是“default.aspx”,而不是“login.aspx”。从我所看到的情况来看,我认为我应该使用一个链接图像或带有我自己代码的href'd图像来进行正确的身份验证。如果登录状态导致重定向,如何重建您自己的登录状态?很容易获得登录用户的姓名,注销链接有3行代码抱歉响应太晚,没有电子邮件通知很容易忘记!!是的,我最后做了那件事。非常感谢你!谢谢你的回复,你是说我不给罗吉努尔分配任何东西吗?实际上,我最终编写了自己的LoginStatus,并在其中添加了更多jQuery内容。“loginURL”应该是用户用来登录的URL。正如tin上所说:)当您请求该站点时,您总是获得登录页面的原因是您不允许未经验证的(也称为“匿名”)用户访问“Default.aspx”。这是我回答的第二部分。
    <authentication mode="Forms">
        <forms defaultUrl="Default.aspx" loginUrl="Login.aspx" timeout="20" protection="None" cookieless="UseCookies"/>
    </authentication>
    
    <location path="Default.aspx"> 
        <system.web>
            <authorization> 
                <allow users="*" />
            </authorization>
        </system.web>
    </location>