2013-09-16 3 views
1

Я разрабатываю веб-приложение, в котором студенты сдают свои экзамены. Вот требование, чтобы показать, какие студенты вошли в админ и панель факультета. Во-первых, я обновил столбец в базе данных с именем flag, который превращается в 1 во время входа вовремя, а при выведенном из него повороте на 0. Но когда браузер принудительно закрыт, он не может быть обновлен. для этого я использовал метод java script, который срабатывает всякий раз, когда мы переходим на другую страницу и показываем, что студент вышел из системы.Узнайте, сколько пользователей находится в сети в веб-приложении asp.net

Есть ли решение для одного и того же.

ответ

1

Нет простого способа обновить статус пользователя, как только он закрыл браузер, не выходя из системы. Вы можете использовать событие Session_End в Global.asax, но это будет срабатывать при истечении сеанса (обычно 20 минут). Кроме того, в Session_End у вас нет информации об аутентифицированном пользователе, только идентификатор сеанса.

Если вы используете ASP.NET членство для аутентификации пользователей, есть метод, который делает то, что вам нужно

Membership.GetNumberOfUsersOnline() 
1

Добавьте этот код на Global.asax Страницы

public void Session_Start(object sender, EventArgs e) 
{ 
// Fires when the session is started 
Application["UserCount"] = Convert.ToInt32(Application["UserCount"].ToString()) + 1; 
} 

public void Session_End(object sender, EventArgs e) 
{ 
    // Fires when the session ends 
    Application["UserCount"] = Convert.ToInt32(Application["UserCount"].ToString()) - 1; 
} 

Добавить этот код на ваш Основная страница

private void Page_Load(System.Object sender, System.EventArgs e) 
{ 
//Put user code to initialize the page here 
this.lblUserCount.Text = "Users online " + Application["UserCount"].ToString(); 
} 

Или

Если вы используете встроенный в ASP.NET поставщика членства, то есть постоянно так удобный Membership.GetNumberOfUsersOnline() метод.

+0

'Приложение' содержит' объекты', поэтому вы можете просто сохранить значение как 'int', а не делать все преобразования – freefaller

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