Вход в asp.net - как прервать с подсказкой сообщения? - PullRequest
1 голос
/ 11 февраля 2011

У меня, казалось бы, легкая проблема, и у меня возникают проблемы при разработке правильного решения.

У меня нормальный контроль входа в систему asp .net. Когда пользователь входит в систему (и успешно проходит аутентификацию), я хочу отобразить подсказку с сообщением JavaScript, например:

Предупреждение: это государственная система ... и т.д.

Есть миллион и один способ сделать это ... но я действительно хотел сохранить это в своем пользовательском контроле входа в систему. Я безуспешно поиграл со следующими методами:

protected void OnAuthenticate(object sender, AuthenticateEventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true);
}

protected void OnLoggingIn(object sender, LoginCancelEventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 
}

protected void OnLoggedIn(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true);
}

Кажется, что жизненный цикл страницы обратной связи меня облажает.

Может быть, я должен думать об этом по-другому?

страница входа -> (успех) -> страница с предупреждением -> страница панели пользователя

Любой совет будет принят с благодарностью.

Спасибо!

-Josh

РЕДАКТИРОВАТЬ: я также пытался Page.ClientScript.RegisterClientScriptBlock ("....");

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Используете ли вы главную страницу / базовую страницу и сеанс? Вы можете сделать это так, чтобы предупреждение отображалось на первой странице без регистрации:

protected void Page_load(object sender, EventArgs e) 
{
   if (Request.IsAuthenticated && !Page.IsPostBack())     
      if (session["warningShown"] == null or session["warningShown"] == false)
      {
         session["warningShown"] = true;
         Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 

      }
   }
}
0 голосов
/ 06 февраля 2012

Если это поможет, я делал что-то подобное с классическим ASP в те времена ...

Мой Javascript был похож на:

if (confirm('Yes or no'))
  {
    return true;
  }

Это было записано на страницу с оператором Response.write. Если пользователь нажмет OK, он будет перенаправлен; если бы они нажали «отменить», они остались бы на странице. (Я признаю, что прошло много времени с тех пор, как я это сделал, так что, возможно, это не точный синтаксис)

Это может быть не совсем то, что вы ищете, но это может привести вас в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...