, чтобы начать здесь, вы используете метод входа в систему:
protected void LoginButton_Click(object sender, EventArgs e)
{
// Validate the user against the Membership framework user store
if (Membership.ValidateUser(UserName.Text, Password.Text))
{
// Log the user into the site
FormsAuthentication.RedirectFromLoginPage(UserName.Text, RememberMe.Checked);
}
// If we reach here, the user's credentials were invalid
InvalidCredentialsMessage.Visible = true;
}
вы можете проверить учетные данные пользователя в методе аутентификации:
protected void myLogin_Authenticate(object sender, AuthenticateEventArgs e)
{
// Get the email address entered
TextBox EmailTextBox = myLogin.FindControl("Email") as TextBox;
string email = EmailTextBox.Text.Trim();
// Verify that the username/password pair is valid
if (Membership.ValidateUser(myLogin.UserName, myLogin.Password))
{
// Username/password are valid, check email
MembershipUser usrInfo = Membership.GetUser(myLogin.UserName);
if (usrInfo != null && string.Compare(usrInfo.Email, email, true) == 0)
{
// Email matches, the credentials are valid
e.Authenticated = true;
}
else
{
// Email address is invalid...
e.Authenticated = false;
}
}
else
{
// Username/password are not valid...
e.Authenticated = false;
}
}
Для перенаправления в зависимости от конкретногоРоль используйте этот код:
protected void Login1_LoggedIn(object sender, EventArgs e)
{
if (Roles.IsUserInRole(Login1.UserName, "Admin"))
{
Response.Redirect("~/Admin/Default.aspx");
}
else if (Roles.IsUserInRole(Login1.UserName, "User"))
{
Response.Redirect("~/User/Default.aspx");
}
else if (Roles.IsUserInRole(Login1.UserName, "Viewer"))
{
Response.Redirect("~/Viewer/Default.aspx");
}
else
{
Response.Redirect("~/Login.aspx");
}
}
РЕДАКТИРОВАТЬ:
Вот решение, которое должно работать для вас не лучший код, но все еще хорошо.
Итак, прежде всего выНастройте свой элемент управления для входа с помощью тега DestinationPageUrl следующим образом:
<asp:Login
ID="Login1"
runat="server"
DestinationPageUrl="~/admin_pages/zipsearch.aspx">
</asp:Login>
Затем в вашем методе LoginButton_Click:
protected void LoginButton_Click(object sender, EventArgs e)
{
// Validate the user against the Membership framework user store
if (Membership.ValidateUser(myLogin.UserName, myLogin.Password))
{
// Username/password are valid, check email
MembershipUser currentUser = Membership.GetUser(myLogin.UserName);
if (currentUser != null)
{
if (admin_flag == true)
{
FormsAuthentication.RedirectFromLoginPage(UserName.Text, RememberMe.Checked);
}
else
{
// If we reach here, the user's credentials were invalid -> your access is denied message
InvalidCredentialsMessage.Visible = true;
}
}
}
//if code goes here validation of user failed
}