表单身份验证/多个登录页面

时间:2011-03-11 00:25:03

标签: asp.net forms-authentication

我已经阅读了许多人试图使用两个不同的登录页面的帖子:一个用于用户,一个用于管理员。我的问题非常不同。我有一个带有LoginView和LoginControl的Site.master页面。然后我有三个根级别页面Default.aspx,About.aspx和Contact.aspx派生自Site.master。所有三个页面都在web.config中设置,以允许所有用户使用。然后,我在Member文件夹中有一个MemberPage,只有经过身份验证的用户才能访问该文件夹。我想要发生的是能够从Default,About或Contact页面登录,然后被定向到MemberPage。

现在设置表单身份验证的方式,我只能有一个loginUrl和一个defaultUrl。这意味着如果我在web.config中有这个设置:

<authentication mode="Forms"> <forms name="ishAuth" loginUrl="Default.aspx" timeout="50" defaultUrl="~/Member/MemberPage.aspx"></forms> </authentication>

重定向到/Member/MemberPage.aspx的唯一页面是Default.aspx。我希望我的用户能够浏览网站的匿名部分并从任何页面登录,然后重定向到MemberPage。现在,如果我在About.aspx页面上并登录,我将通过身份验证,但仍保留在“关于”页面上。

是否有解决元素属性的方法?我可以关闭元素的默认操作并使用我自己的自定义代码进行重定向吗?

1 个答案:

答案 0 :(得分:0)

我现在无法访问Visual Studio,但您应该能够使用登录控件的“OnLoggedIn”事件来执行您想要的操作。为该事件创建偶数处理程序,只需添加Response.Redirect("~/Member/MemberPage.aspx"),您的用户就会被重定向到正确的页面。

您可以查看this page on the MSDN了解详情。