本人在制作一个自定义登陆控件时,遇到一个无法解决的问题,希望哪位朋友帮忙看下:

    我是在控件里判断用户名和密码的,同时用Cookies记录相关的信息(也是在控件里实现的)。下面这段代码用来判断Cookies   

        protected override void CreateChildControls() 
        {
            Controls.Clear();
            ClearChildViewState();

            if (HttpContext.Current.Request.Cookies["login"] == null)            
            {
                CreateControlHierarchy();                 //显示登陆界面
                PrepareControlHierarchy();
                }
            else
            {
                WelcomeControlHierarchy();           //显示欢迎界面
                 }

            TrackViewState();
            ChildControlsCreated=true;
        }
   如果Cookies存在,则执行WelcomeControlHierarchy()语句,就是欢迎用户的子控件,否则显示登陆界面。这些都没什么问题。主要的问题出在欢迎用户的子控件里,我加了一个注销的按钮,该按钮的事件处理如下:

private void _logoutBtn_Click (Object sender,EventArgs e) //注销用户信息
        {               
            HttpContext.Current.Response.Cookies.Remove( 
"login" );        
        CreateChildControl();
        }

也就是在执行了HttpContext.Current.Response.Cookies.Remove( "login" )语句后,再执行CreateChildControl()语句,程序还是会执行WelcomeControlHierarchy()函数。也就是说(HttpContext.Current.Request.Cookies["login"] = = null) =false  。
    不知道有哪位朋友也遇到过这个问题,或者知道该如何解决这个问题。本人在这里先谢了。

Posted on 2006-04-06 17:18  艾野  阅读(701)  评论(4编辑  收藏  举报