ASP defaultUrl代码后面没有执行

时间:2014-07-11 09:35:31

标签: c# asp.net

我有一个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没有执行后面的代码吗?

2 个答案:

答案 0 :(得分:1)

听起来像错误是在'Default.aspx'标记页面中。检查页面指令,尤其是“Inherits”属性。应该指向你的代码隐藏文件。

答案 1 :(得分:0)

AutoEvent连线是Default.aspx页面中的问题,它被设置为AutoEventWireup="false",将其更改为true为我解决了这个问题。