Member 14165241 Ответов: 1

Как установить статус пользователя “0” при автоматическом выходе неактивного пользователя из системы?


Я использую javascript на странице aspx для выхода из системы неактивного пользователя. Но также мне нужно изменить статус пользователя "0" при автоматическом выходе из системы. Как я могу отправить значение user status "0", когда неактивный пользователь автоматически выйдет из системы?

Что я уже пробовал:

public void ValidateUser_LOGSTS_Update(object sender, EventArgs e)
    {
        int userId = 0;

        string Cur_user = Session["Userid"].ToString();
        String constr = ConfigurationManager.ConnectionStrings["abcd"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand("sp_tbl_LogCheck_update"))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@userID", Cur_user);
                cmd.Parameters.Add("@msg", SqlDbType.Int, 20).Direction = ParameterDirection.Output;
                cmd.Connection = con;
                con.Open();
                cmd.ExecuteNonQuery();

                // read output value from @NewId
                string msg_sts = Convert.ToString(cmd.Parameters["@msg"].Value);

                con.Close();
                if (msg_sts == "0")
                {
                    Session.Clear();
                    Session.Abandon();
                    //Response.Redirect(FormsAuthentication.LoginUrl);
                    FormsAuthentication.RedirectToLoginPage();
                }


            }

        }

    }


<pre><script type="text/javascript">

    var t;
    window.onload=resetTimer;
    document.onkeypress=resetTimer;

    function logout()
    {
	    alert("You are now logged out.")
	    location.href = 'LogOut.aspx'
    }
    function resetTimer()
    {
	    clearTimeout(t);
	    t=setTimeout(logout,60000) //logs out in 10 min
    }

    </script>

1 Ответов

Рейтинг:
0

OriginalGriff

Более простое решение-не делать этого. Вместо того чтобы выходить из системы, когда он неактивен и браузер открыт, сохраните метку времени "выход истекает" на сервере и обновляйте ее каждый раз, когда сервер разговаривает с ним. Затем, когда вам нужно знать, вошел ли он в систему, вы проверяете метку времени и бинго!

Это означает, что если вы выключите его компьютер, например, или потеряете сигнал Wi-Fi на его телефоне, он все равно может автоматически выйти из системы, когда истечет тайм-аут. Если вы сделаете это по-своему, он войдет в систему через неделю, если он отключит питание или потеряет соединение.


Member 14165241

Пожалуйста , дайте мне пример кода, чтобы я мог следовать этому .

OriginalGriff

Какая часть этого для вас трудна?

Member 14165241

Как установить метку времени , пожалуйста, дайте мне какой-нибудь пример кода

OriginalGriff

Ты ведь шутишь, правда?

DateTime expiresAt = DateTime.UtcNow.AddMinutes(30);


Просто поместите это в свою БД - и ваш код показывает, что вы знаете, как это сделать ...

Member 14165241

Как я могу отправить значение user status "0" ?

OriginalGriff

Вы прочитали хоть одно слово, которое я напечатал?

Member 14165241

Извините. Я очень новичок в этой области, не в состоянии понять вашу идею. Но в этой системе я должен хранить и обновлять статус пользователя "0" или "1" в базе данных каждый раз. Я понятия не имею, как я могу использовать вашу концепцию в этом случае