Данные не отображаются после перенаправления страницы ASP.NET C #

0

Я попал в странный сценарий с разработкой простой функции входа в ASP.NET. Существуют две страницы: LoginPage.aspx и Default.aspx. После того, как пользователь предоставит действительные учетные данные на странице входа в систему, он перенаправляется на страницу по умолчанию. Я хочу отображать информацию для входа пользователя поверх страницы по умолчанию, для этой цели я добавил следующий HTML:

<form id="Form1" runat="server">
<div id="demo_header" runat="server">

    <asp:Label ID="loggedinUsername" ForeColor="Black" runat="server"></asp:Label>
    <asp:LinkButton ID="logout" runat="server" Text="Logout!" ForeColor="Black" OnClick="Logout"></asp:LinkButton>
    ...
</div>
</form>

И в Default.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
if (Session["LoggedinUser"] != null)
        {
            loggedinUsername.Text = "Welcome " + Session["LoggedinUser"].ToString() + " ";
            logout.Visible = true;
            demo_header.Visible = false;
        }
        else
        {
            logout.Visible = false;
            demo_header.Visible = true;
        }
}

Вот код, который выполняется, когда пользователь нажимает кнопку Login на LoginPage.aspx:

protected void LoginButton_Click(object sender, EventArgs e)
{
    if (LoginEmail.ToString() == string.Empty || LoginPassword.ToString() == string.Empty)
    {
        Session["RedirectReaasonFlag"] = "Credentials null";
        login_error_msg.Text = "Please Provide Email/Password!";
    }
    else 
    {
        UserStandard User = new UserStandard();
        User._Email = LoginEmail.Text;
        User._password = LoginPassword.Text;
        Dictionary<int, string> LoggedinUserData = User.AuthenticateUser(User);
        if (LoggedinUserData.Count == 1)
        {
            Session["LoggedinUserID"] = LoggedinUserData.ElementAt(0).Key;
            Session["LoggedinUser"] = LoggedinUserData.ElementAt(0).Value;
            Response.Redirect("Default.aspx");
        }
        else
            Session["RedirectReaasonFlag"]= "Invalid Login Attempt";
    }
}

Но почему-то, когда пользователь перенаправляется по странице "По умолчанию", его имя и гиперссылка "Выйти" не отображаются. Это очень простая задача, и эта ситуация поедает мой мозг. Пожалуйста, помогите мне здесь.

Благодарю.

Теги:
visual-studio-2010

1 ответ

3
Лучший ответ

Похоже, что ваша метка loggedinUsername и кнопка logout находятся в div который вы устанавливаете Visible = false. Таким образом, вы говорите браузеру скрыть эти элементы, когда логин будет успешным. Попробуйте установить demo_header.Visible = true.

  • 0
    Не могу поверить, какую глупую ошибку я совершил !! большое спасибо.
  • 0
    Это случается со всеми нами в то или иное время. Иногда все, что вам нужно, это свежий взгляд на проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню