Привет я использую FormsAuthentication. RedirectFromLoginPage для пользователя входят в систему и для перенаправления к default.aspx странице. Я хочу это, если пользователь звонил, администратор делают вход в систему перенаправляется к странице admin.aspx
Действительно ли это возможно?
Поведение по умолчанию заключается в перенаправлении на первоначально запрошенный ресурс, поэтому если пользователь попытался получить доступ к 'admin.aspx' и не прошел аутентификацию, он будет отправлен на страницу входа. После успешной аутентификации пользователь отправляется на первоначально запрошенный url (admin.aspx).
user -> "admin.aspx" -> noauth -> login -> "admin.aspx"
Итак, вместо того, чтобы вручную пытаться отправить пользователей куда-то, не будет ли это поведение по умолчанию работать для вас? Поведение по умолчанию на самом деле "надежное" (это может быть "admin2.aspx", "admin3.aspx" и так далее... у вас может быть любое количество "защищенных ресурсов" и встроенный процесс обрабатывает все это....)
Если вы используете элемент управления входом ASP.NET MembershipProvider, вы можете написать свою логику в событии LoggedIn
<asp:Login id="Login1" runat="server" OnLoggedIn="OnLoggedIn"></asp:Login>
protecetd void OnLoggedIn(object sender, EventArgs e)
{
if(Roles.IsUserInRole(User.Identity.Name, "Administrators"))
{
//Redirect to admin page
Response.Redirect("~/Admin.aspx");
}
}
Не забудьте также поставить защиту на страницу admin.aspx, на случай, если кто-то введет url напрямую