0

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

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

我将不胜感激任何帮助...

以下是我的登录代码:

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;
        }
4

1 回答 1

0

如果您使用自己的登录代码,则需要保留用户的身份验证信息,例如通过在响应中添加 cookie。内置控件会自动执行此操作。

我假设您正在使用基于表单的身份验证。这里有对 Forms auth 的 .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

于 2013-05-09T15:00:57.450 回答