На моей форме логина есть UpdatePanel:
<asp:UpdatePanel ID="PanelLoginMesage" runat="server">
<ContentTemplate>
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="LoginButton" EventName="Click"/>
</Triggers>
</asp:UpdatePanel>
Есть обработчик:
protected void LoginButton_Click(object sender, EventArgs e)
{
MyUser user = new MyUser(login, password);
user.DoLogin();
if (user.LoginResult == LoginResults.Unsuccessfully)
{
lblMessage.Text = "User name or password are incorrect!";
}
else if (user.LoginResult == LoginResults.Successfully)
{
this.Response.Redirect("SimplePage.aspx"); // Как тут перенаправить пользователя на страницу?
}
else
{
lblMessage.Text = "Unknown result of login operation...";
}
}
С помощью панели я проверяю логин и пароль пользователя без презагрузки страницы с сервера. Если логин и пароль правильные, то необходимо пренаправить пользователя уже на следующую страницу. Возможно ли это? Если да, то как это сделать? Если нет, то как обычно поступают в таких ситуациях?
Само собой Server.Transfer и Response.Redirect я уже пробовал. Возникает непонятная ошибка о том, что браузер не может разпарсить страницу. Но я уже сделал новую страницу пустой, не помогло. Если нужно, я перепишу текст ошибки, скопировать в буфер и вставить его тут не получается.
Здравствуйте, <Аноним>, Вы писали:
А>С помощью панели я проверяю логин и пароль пользователя без презагрузки страницы с сервера. Если логин и пароль правильные, то необходимо пренаправить пользователя уже на следующую страницу. Возможно ли это? Если да, то как это сделать? Если нет, то как обычно поступают в таких ситуациях?
Проверьте пользователя скриптом через Sys.Services.AuthenticationService.login и по результатам проверки можно будет сделать редирект на нужную страницу уже из браузера
... << RSDN@Home 1.2.0 alpha rev. 786>>
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, Аноним, Вы писали:
А>Есть обработчик:
...
else if (user.LoginResult == LoginResults.Successfully)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Redirect", "window.location = 'Home.aspx'", true); // Как перенаправить пользователя на страницу.
}
...
Здравствуйте, Chese, Вы писали:
C>Здравствуйте, Аноним, Вы писали:
А>>Есть обработчик:
C>C>...
C>else if (user.LoginResult == LoginResults.Successfully)
C>{
C>ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Redirect", "window.location = 'Home.aspx'", true); // Как перенаправить пользователя на страницу.
C>}
C>...
C>
Спасибо всем, кто откликнулся!
Причина моей ошибки открылась в совершенно неожиданном (для меня) месте. Оказалось, что студия почему-то не добавила некоторые строки в web.config. Причем в других проектах она это делала исправно. Собственно из старых проектов я и восстановил правильный файл конфигурации. Вот эти строки:
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>