Я играю с проверкой подлинности и авторизацией, чтобы подготовиться к какой-то задаче. Я создал две страницы: Login.aspx и Default.aspx. В файле конфигурации я установил аутентификацию формы и отрицал неавторизованный доступ пользователей:ASP.NET: аутентификация пользователя в коде
<authentication mode="Forms">
<forms name="aaa" defaultUrl="~/Login.aspx" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
Тогда я написал простой код для аутентификации пользователя в моем Login.aspx:
protected void Page_Load(object sender, EventArgs e)
{
GenericIdentity identity = new GenericIdentity("aga", "bbb");
Context.User = new GenericPrincipal(identity, new String[] { "User" }); ;
Response.Redirect("~/Default.aspx");
}
Когда я бегу это, перенаправление не происходит. Вместо этого Login.aspx вызывается снова и снова, потому что пользователь не аутентифицирован (Context.User.Identity.IsAuthenticated является ложным при каждой загрузке). Что я делаю не так?
Server.Transfer вместо Response.Redirect должен исправить эту проблему. –
@ Крис только для текущего запроса - просто задерживает проблему до следующего запроса. –