2011-03-11 60 views
0

我已阅读试图使用两个不同登录页面的人员的许多帖子:一个用于用户,另一个用于管理员。我的问题非常不同。我有一个带有LoginView和LoginControl的Site.master页面。然后,我有三个从Site.master派生的根级页面Default.aspx,About.aspx和Contact.aspx。所有三个页面都在web.config中设置为允许所有用户使用。然后我在成员文件夹中有一个MemberPage,只有经过认证的用户才能访问该文件夹。我想要发生的事情是能够从默认,关于或联系页面登录,然后直接进入MemberPage。带有多个登录页面的表单身份验证

现在设置Form Authentication的方式,我只能有一个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页面上登录,我已通过身份验证,但仍保留在About页面上。

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

回答

0

我目前无法访问Visual Studio,但您应该可以使用登录控件的“OnLoggedIn”事件来执行您想要的操作。创建该事件的偶数处理程序,只需将Response.Redirect("~/Member/MemberPage.aspx")并且您的用户应该重定向到正确的页面。

你可以看看this page on the MSDN了解更多信息。

+0

我完全忘了我读过关于登录控制方法。不过,我试过这个:Response.Redirect(“〜/ Member/MemberPage.aspx”)和FormsAuthentication.RedirectFromLoginPage(“〜/ Member/MemberPage.aspx”,rememberMe.Checked),他们都没有工作。 – iJared 2011-03-11 01:12:17

+0

其实我回来了。它确实有效。在我急于治愈的时候,我忘了进入Site.master aspx页面,并将OnLoggedIn =“OnLoggedIn”属性放在LoginControl中。我现在工作非常棒。非常感谢 – iJared 2011-03-11 01:54:28