我有一个LogIn.aspx
页面,当前设置为我项目的起始页面。我正在使用ASP身份验证,并有一个登录按钮,可以访问应用程序的其余部分。
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In"
CssClass="button" ValidationGroup="Login1" />
我的应用程序似乎是将登录用户指向default.aspx,而该项目实际上并不存在。我现在在web.config中设置以下内容:
<authentication mode="Forms" >
<forms loginUrl="login.aspx" defaultUrl="~/Secure/Default.aspx"/>
</authentication>
Default.aspx包含以下代码:
public partial class Secure_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
RoleRedirect();
}
public void RoleRedirect()
{
if (Boat_Registration.Code.utils.MembershipUtil.IsCurrentUserHarbourMaster())
{
Response.Redirect("~/Secure/HarbourMaster/Default.aspx");
}
else
{
Response.Redirect("~/Secure/CustomerSummary.aspx");
}
}
}
然而,正在发生的事情是,一旦用户登录它们被定向到Default.aspx,但后面的代码没有被触发,它们被放在一个空页面上,它应该重定向它们管理主页或常规用户主页,具体取决于他们的角色。
有人可以告诉我为什么我添加的defaultUrl没有执行后面的代码吗?
答案 0 :(得分:1)
听起来像错误是在'Default.aspx'标记页面中。检查页面指令,尤其是“Inherits”属性。应该指向你的代码隐藏文件。
答案 1 :(得分:0)
AutoEvent连线是Default.aspx页面中的问题,它被设置为AutoEventWireup="false"
,将其更改为true
为我解决了这个问题。