C# 一旦用户通过会员身份创建新帐户,我如何进行身份验证&;Asp.Net中的角色
我已在Asp.Net成员身份中创建了自定义CreateUser。现在我想要的是,当用户被创建时,它应该被重定向为default.aspx页面上的loggedIn用户。如何进行身份验证并重定向到默认页面。我不希望他再次登录,但当用户创建成功时,它应该自动登录并转到默认页面 这是我的密码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
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);
}
}
希望它能帮助您:)它会重定向,但身份验证呢?它不会进行身份验证。。在登录状态下,它仍将显示欢迎来宾,