Professional asp.net 2.0 server control and component development

P653 Listing 21-21

void OnLogin(object sender, EventArgs e)
{
if (CustomComponents.Membership.ValidateUser(userNameTextBox.Text,
passwordTextBox.Text))
{
FormsAuthenticationTicket ticket 
= new FormsAuthenticationTicket( 1,
userNameTextBox.Text, DateTime.Now,
DateTime.Now.AddSeconds(
40),falsestring.Empty);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie 
= new HttpCookie(FormsAuthentication.FormsCookieName);
cookie.Value 
= encryptedTicket;
Page.Response.Cookies.Add(cookie);
EnsureChildControls();
Page.Response.Redirect(
FormsAuthentication.GetRedirectUrl(userNameTextBox.Text, 
false), true);
}

}

对于EnsureChildControls()的调用,作者解释:

The OnLogin method calls the EnsureChildControls method before the call into the Redirect method because it passes the value of the Text property of the username TextBox into the Redirect method. Recall that every composite
control must call the EnsureChildControls method before it attempts to access its child controls:

但是之前的代码早已经access its child controls了。奇怪。

if (CustomComponents.Membership.ValidateUser(userNameTextBox.Text,
passwordTextBox.Text))


 

 

 

 

posted on 2007-10-10 09:47  融化了的朱古力  阅读(313)  评论(0编辑  收藏  举报

导航