如何从cs文件中调用类来更新或保存数据库中过期的会话
本文关键字:保存 数据库 过期 会话 更新 cs 文件 调用 | 更新日期: 2024-10-21 21:03:19
我有一个类函数,如下&我想使用这个类来调用到我的母版页中。然后,进行登录&将页面的注销时间保存到我的数据库中。
namespace LogInLogOut
{
public partial class LogInLogOut : System.Web.UI.Page
{
public static void updateLogoutTime(string username, string pcname, string module)
{
String connectionString = ConfigurationManager.ConnectionStrings["VSConfigConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("UPDATE [Access] set LogOutDate = '" + DateTime.Today.ToString("dd/MM/yyyy") + "', LogOutTime = '" + DateTime.Now.ToString("HH:mm:ss") + "' WHERE LoginID ='" + username + "' AND ModuleID = '" + module + "' AND comptname ='" + pcname + "' AND LogOutDate= ' '", connection);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
cmd.Connection.Dispose();
}
}
}
这是主页中用于弹出消息的代码,但我不知道在主页中编写调用上层阶级的调用函数。希望有人能帮我解决这个问题。非常感谢。
protected void Page_Load(object sender, EventArgs e)
{
string csname = "timeoutWarning";
Type cstype = this.GetType();
if (!Page.ClientScript.IsStartupScriptRegistered(cstype, csname))
{
string strconfirm = "<script>" +
"window.setTimeout('SessionTimeOutHandler()', 10000);" +
"function SessionTimeOutHandler() { " +
"alert('Your login session is expired');" +
"function(){ update(document.LogInLogOut('lblUserName.Text', 'lblComputerName.Text', 'UR')); } " +
"window.location='../login.aspx';" +
" } </script>";
Page.ClientScript.RegisterStartupScript(cstype, csname, strconfirm, false);
}
}
您不能在javascript代码中调用这样的服务器函数。
要调用服务器函数,必须先向服务器发送一个请求。这通常是asp.net中的一个Postback。
如果您确实想调用这样的函数,则必须将其标记为WebMethod
。Asp.net将隐藏调用该函数所需的所有js。
WebMethods上的这个博客会让你开始。
你的代码应该是这样的:
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public void LogoutTime(string username, string pcname, string module)
{
String connectionString = ConfigurationManager.ConnectionStrings["VSConfigConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("UPDATE [Access] set LogOutDate = '" + DateTime.Today.ToString("dd/MM/yyyy") + "', LogOutTime = '" + DateTime.Now.ToString("HH:mm:ss") + "' WHERE LoginID ='" + username + "' AND ModuleID = '" + module + "' AND comptname ='" + pcname + "' AND LogOutDate= ' '", connection);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
cmd.Connection.Dispose();
}
现在可以使用PageMethods
在javascript中调用此函数
PageMethods.LogoutTime('lblUserName.Text', 'lblComputerName.Text', 'UR', update);
如果你想把这个函数放在所有页面上,就应该把它放在主页面上,而不是放在单独的页面上。