C# 一旦用户通过会员身份创建新帐户,我如何进行身份验证&;Asp.Net中的角色

C# 一旦用户通过会员身份创建新帐户,我如何进行身份验证&;Asp.Net中的角色,c#,asp.net,asp.net-membership,C#,Asp.net,Asp.net Membership,我已在Asp.Net成员身份中创建了自定义CreateUser。现在我想要的是,当用户被创建时,它应该被重定向为default.aspx页面上的loggedIn用户。如何进行身份验证并重定向到默认页面。我不希望他再次登录,但当用户创建成功时,它应该自动登录并转到默认页面 这是我的密码 public string AddUser(string UserName, string FirstName, string LastName, string Gender, string EmailID, st

我已在Asp.Net成员身份中创建了自定义CreateUser。现在我想要的是,当用户被创建时,它应该被重定向为default.aspx页面上的loggedIn用户。如何进行身份验证并重定向到默认页面。我不希望他再次登录,但当用户创建成功时,它应该自动登录并转到默认页面

这是我的密码

public string AddUser(string UserName, string FirstName, string LastName, string Gender, string EmailID, string Password, string Mobile, string SecurityQuestion, string SecurityAnswer)
    {
        MembershipCreateStatus CreateStatus;

        MembershipUser newUser = Membership.CreateUser(UserName, Password, EmailID, SecurityQuestion, SecurityAnswer, true, out CreateStatus);

        if (CreateStatus == MembershipCreateStatus.Success)
        {

            Guid newUserId = (Guid)newUser.ProviderUserKey;

            if (RegisterCustomFields(newUserId, FirstName, LastName, Gender, Mobile) != 0)
            {
                Roles.AddUserToRole(newUser.UserName, "User");
                ReturnMsg = "Successfully Created ";
            }
            else
            {
                Membership.DeleteUser(newUser.UserName);
                ReturnMsg = "Error Creating User";
            }

        }
        else
        {

            switch (CreateStatus)
            {
                case MembershipCreateStatus.DuplicateUserName:
                    ReturnMsg = "There already exists a user with this username.";
                    break;

                case MembershipCreateStatus.DuplicateEmail:
                    ReturnMsg = "There already exists a user with this email address.";
                    break;
                case MembershipCreateStatus.InvalidEmail:
                    ReturnMsg = "There email address you provided in invalid.";
                    break;
                case MembershipCreateStatus.InvalidAnswer:
                    ReturnMsg = "There security answer was invalid.";
                    break;
                case MembershipCreateStatus.InvalidPassword:
                    ReturnMsg = "The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character.";
                    break;
                default:
                    ReturnMsg = "There was an unknown error; the user account was NOT created.";
                    break;
            }


        }

        return ReturnMsg;

    }

注册成功后,编写以下代码。 server.Transfer(“~/Default.aspx”)

对于身份验证: 不确定您是否想知道他们是否是“已注册”用户或是否已登录(如登录状态所示)

下面是了解他们是否已登录(登录状态使用什么):

System.Web.HttpContext.Current.User.Identity.IsAuthenticated

试试这个:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
        {
            if(Membership.ValidateUser(Login1.UserName, Login1.Password))
            {
                Response.Redirect("default.aspx");
                // Set the user as logged in?
            }

        }

如果使用FormsAuthentication:

FormsAuthentication.SetAuthCookie(userName, isPrsistent);
如果使用Asp.Net MVC,则:

return RedirectToAction("Index", "Home");

有关WebForms,请参阅用户1237131答案,因为您已注册该用户,但在成功注册后未验证该用户的登录权限。该用户未自动登录

因此,当您发现用户已成功注册到应用程序,并且注册后,他将被添加到特定角色。然后您可以使用下面的代码验证用户

 if (Membership.ValidateUser(UserName, password.Text))
      {
      string[] role = Roles.GetRolesForUser(username.Text);
      string userrole = role[0].ToString();

      FormsAuthentication.SetAuthCookie(UserName, true);
      // Above line will create a Cookie on Browser and you can use this to check the authentication of the user. 
      if (userrole == "User")
          {
              Response.Redirect("~/Default.aspx", true);
          }
      else
          {
              Response.Redirect("~/UnAuthorizedPage.aspx", true);
          }
 }

希望它能帮助您:)

它会重定向,但身份验证呢?它不会进行身份验证。。在登录状态下,它仍将显示欢迎来宾,