我添加一个Web用户用户控件Header.ascx,当我把它拖进Web窗体,运行的时候发生这样的一个错误:
发生类型为 System.StackOverflowException 的异常。
请哪位能帮我解决呀?万分感谢!!!
Header.ascx.cs的代码如下:
namespace Business
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Common;  //自定义项目
using Data;  //自定义项目
using System.Web .Security ; /// <summary>
/// Header 的摘要说明。
/// </summary>
public class Header : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Label lblUser;
protected System.Web.UI.WebControls.LinkButton lbDelete;
protected System.Web.UI.WebControls.LinkButton lbUserManage;
protected System.Web.UI.WebControls.LinkButton lbNewPost;
protected System.Web.UI.WebControls.LinkButton lbReturn;
protected System.Web.UI.WebControls.LinkButton lbLogin;
protected System.Web.UI.WebControls.LinkButton lbLogout; #region Properties
/// <summary>
/// 用户名
/// </summary>
public string Username
{
get
{
return HttpContext.Current .User.Identity .Name ;
}
}
/// <summary>
/// 是否登录
/// </summary>
public bool IsLogin
{
get
{
return HttpContext.Current .User .Identity .IsAuthenticated ;
}
}
/// <summary>
/// 是否有用户管理权限
/// </summary>
public bool CanUserManage
{
get
{
if(!IsLogin)
return false;
string strUsername = HttpContext.Current .User .Identity .Name ;
return Forum.CanUserManage (strUsername);
}
}
/// <summary>
/// 是否显示删除文章按钮
/// </summary>
private bool ShowDelete
{
get
{
return ShowDelete;
}
set
{
ShowDelete=value;
}
}
/// <summary>
/// 是否有权删除文章
/// </summary>
public bool CanDelete
{
get
{
if(!IsLogin)
return false;
if(!Forum.CanDeleteArticle (Username))
return false;
return true;
}
}
#endregion private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//设置各个按钮是否可见
lbLogout.Visible =IsLogin;
lbNewPost.Visible =IsLogin;
lbLogin.Visible =!IsLogin;
lbUserManage.Visible =CanUserManage;
lblUser.Text ="欢迎光临,"+Username+"!";
lblUser.Visible =IsLogin;
lbDelete.Visible =ShowDelete && CanDelete;
if(lbDelete.Visible )
{
lbDelete.Attributes .Add ("onclick","return window.confirm('您确定要删除该文章及其所有回复吗?');");
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.lbLogout.Click += new System.EventHandler(this.lbLogout_Click);
this.lbLogin.Click += new System.EventHandler(this.lbLogin_Click);
this.lbReturn.Click += new System.EventHandler(this.lbReturn_Click);
this.lbNewPost.Click += new System.EventHandler(this.lbNewPost_Click);
this.lbUserManage.Click += new System.EventHandler(this.lbUserManage_Click);
this.lbDelete.Click += new System.EventHandler(this.lbDelete_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void lbLogin_Click(object sender, System.EventArgs e)
{
//转向登录页面
Response.Redirect ("~/Login.aspx");
} private void lbLogout_Click(object sender, System.EventArgs e)
{
FormsAuthentication.SignOut ();
Response.Redirect ("~/Default.aspx");
} private void lbReturn_Click(object sender, System.EventArgs e)
{
Response.Redirect ("~/Default.aspx");
} private void lbUserManage_Click(object sender, System.EventArgs e)
{
Response.Redirect ("~/UserManage.aspx");
} private void lbDelete_Click(object sender, System.EventArgs e)
{
int id=Convert.ToInt32 (Request.QueryString ["id"]);
if(Forum.DeleteArticle (id,Username))
{
Response.Redirect ("~/Default.aspx");
}
else
{
Response.Write ("<script>alert('删除文章失败!');</script>");
}
} private void lbNewPost_Click(object sender, System.EventArgs e)
{
Response.Redirect ("~/NewPost.aspx");
}
}
}