2013-05-09 90 views
0

我正在使用ASP.NET Membership来管理网站用户。但不使用特定的“登录控件”。实际上,只需应用Membership类方法即可创建用户帐户,也可以用于用户登录。 另一方面,Site.Master中有一个LoginView控件负责“欢迎用户名”任务。 问题是,创建新帐户或任何登录后,LoginView控件不会更新。 我必须确定使用特定的登录控件吗?用户登录后无法更新

----此外,我已将登录按钮CommandName设置为“登录”! ----我应该为创建用户按钮设置类似的东西吗?

我希望得到任何帮助......

以下是我的登录代码:

if (!Membership.ValidateUser(HttpUtility.HtmlEncode(txtUserName.Text), HttpUtility.HtmlEncode(txtPass.Text))) 
     { 
      lblResult.Text = "Invalid user name and password."; 
      lblResult.Visible = true; 
     } 
     else 
     { 
      Response.Redirect("~/Default.aspx"); 
     } 

这里注册码:

MembershipCreateStatus statusUser; 

     try 
     { 
      Membership.CreateUser(HttpUtility.HtmlEncode(txtUserName.Text), HttpUtility.HtmlEncode(txtPass.Text), HttpUtility.HtmlEncode(txtEmail.Text), ddlSexQues.SelectedValue != "-1" ? ddlSexQues.Text : string.Empty, txtSecAnsw.Text == string.Empty ? string.Empty : txtSecAnsw.Text, true, out statusUser); 

      txtEmail.Text = string.Empty; 
      txtPass.Text = string.Empty; 
      txtRepass.Text = string.Empty; 
      txtSecAnsw.Text = string.Empty; 
      txtUserName.Text = string.Empty; 
      ddlSexQues.SelectedValue = "-1"; 

      lblRsl.ForeColor = Color.Green; 
      lblRsl.Text = "حساب کاربری شما با موفقیت ایجاد شد."; 
      lblRsl.Visible = true; 
     } 
     catch (MembershipCreateUserException error) 
     { 
      lblRsl.Text = GetErrorMessage(error.StatusCode); 
      lblRsl.Visible = true; 
     } 

回答

0

如果您使用的是自己的登录密码,您将需要添加一个cookie来响应保存用户的认证信息,例如。内置控件自动执行此操作。

我假设你正在使用基于表单的身份验证。有到.NET安全类的引用为窗体身份验证在这里,详细说明哪些选项提供给您:

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication%28v=vs.100%29.aspx

看,特别是SetAuthCookieRedirectFromLoginPage方法。

据我所知,在CommandName属性是在代码中Button控件之间的区分。由于您使用自己的方法处理用户创建,我认为您不需要将其添加到您自己的控件中。更多在这里:

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication%28v=vs.100%29.aspx

+0

谢谢你我的朋友... – Ali 2013-05-09 15:13:31

+0

@AliAshoori - 欢迎您。如果我的回答有帮助,请考虑加注和/或接受它。 – 2013-05-09 16:44:44