2014-09-13 3 views
1

Пожалуйста заметьте мастер-страницу код здесьвебов-страница Перенаправление логина управления и LoginView после успешного входа

<asp:LoginView ID="LoginView1" runat="server" ViewStateMode="Disabled"> 
       <AnonymousTemplate> 
        <ul> 
         <li><a id="registerLink" runat="server" href="~/LogReg.aspx">Register</a></li> 
         <li><a id="loginLink" runat="server" href="~/LogReg.aspx">Log in</a></li> 
        </ul> 
       </AnonymousTemplate> 
       <LoggedInTemplate> 
        <ul> 
         <li><a id="manage" runat="server" class="username" href="~/Account/Manage.aspx" title="Manage your account"> 
          <asp:LoginName ID="LoginName2" runat="server" CssClass="username" /> 
         </a> 
         </li> 
         <li><a id="A2" runat="server" href="~/Logout.aspx">Log Out</a></li> 
        </ul> 
       </LoggedInTemplate> 
      </asp:LoginView> 

Это Войти кодовую страницу

<asp:Login ID="Login1" runat="server" Height="198px" Width="297px" DisplayRememberMe="False" OnAuthenticate="Login1_Authenticate" UserNameLabelText="Email:"> 
      <InstructionTextStyle Font-Italic="True" ForeColor="Black" /> 
      <LoginButtonStyle Font-Size="Small" /> 
      <TextBoxStyle Font-Size="0.8em" CssClass="float-right" Width="180px" Height="12px" /> 
      <LabelStyle CssClass="float-left" /> 
      <TitleTextStyle CssClass="task-title" /> 
     </asp:Login> 

Событие аутентификации контроля входа выглядит :

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) 
    { 
     string un = Login1.UserName; 
     string pw = Login1.Password; 

     var c = db.customers.Where(s => s.customer_email == un && s.customer_password == pw && s.customer_deleted != true); 
     if (c.Count() == 1) 
     { 
      e.Authenticated = true; 
      //Something to redirect //Response.Redirect(Page.PreviousPage.ToString()); 
     } 
     else 
      e.Authenticated = false; 

    } 

проблема в том, что при использовании функции Response.Redirect здесь она успешно перенаправляется, но шаблон loginView возвращается к анонимному шаблону. И если я не использую перенаправление, шаблон изменяется на LoggedInTemplate, но я хочу перенаправить его на предыдущую страницу. Я использовал свойство destinationPageUrl, но это то же самое. Спасибо за помощь :)

ответ

1

Проблема заключается в вызове события аутентификации, для управления входом необходимо создать FormAuthentication cookie.

Если вы хотите перенаправить аутентифицированного пользователя на страницу, вы можете использовать LoggedIn.

protected void Login1_LoggedIn(object sender, EventArgs e) 
{ 
    // User is authenticated, so do something here. 
} 

Обычно мы передаем ReturnUrl в строке запроса на страницу входа. Если вход в систему управления находится в ReturnUrl, он перенаправляет обратно на этот URL.

Например, http://www.yoursite.com/login.aspx?ReturnUrl=%2fAbout%2f

+0

Отлично! Спасибо :) –

+0

Page.PreviousPage показывает null в этом случае, можете ли вы также рассказать мне, какой шаг следует предпринять для перенаправления на любую предыдущую страницу, кроме использования сеансов? Спасибо, получил его сейчас. –

+1

Вы можете попробовать ** Request.UrlReferrer **. Однако я не рекомендую ни один, потому что они ненадежны. Вместо этого мы обычно используем ** ReturnUrl в QueryString **. – Win

 Смежные вопросы

  • Нет связанных вопросов^_^