我有一个使用表单身份验证的网站,我的困境是我需要用户在首次使用“www。[site] .com”导航到该网站时点击Default.aspx
页面。然后,他们可以选择单击登录链接以重定向到登录页面并从那里登录该站点。
现在,只要您申请该网站,您就会获得登录页面。我不确定我是否正在使用正确的方法?
有什么想法吗?
更新:像这样的流程:
Default.aspx
LoginStatus
配置了图片的控件Login.aspx
考虑到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>
答案 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
。