用户登录后无法更新
问题描述:
我正在使用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;
}
答
如果您使用的是自己的登录密码,您将需要添加一个cookie来响应保存用户的认证信息,例如。内置控件自动执行此操作。
我假设你正在使用基于表单的身份验证。有到.NET安全类的引用为窗体身份验证在这里,详细说明哪些选项提供给您:
http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication%28v=vs.100%29.aspx
看,特别是SetAuthCookie
和RedirectFromLoginPage
方法。
据我所知,在CommandName
属性是在代码中Button控件之间的区分。由于您使用自己的方法处理用户创建,我认为您不需要将其添加到您自己的控件中。更多在这里:
http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication%28v=vs.100%29.aspx
谢谢你我的朋友... – Ali 2013-05-09 15:13:31
@AliAshoori - 欢迎您。如果我的回答有帮助,请考虑加注和/或接受它。 – 2013-05-09 16:44:44