当用户登录我的asp.net网站时,我有一个必须运行一次的程序。我能找到的最接近的事件是登录控件上的LoggedIn事件和Global.asax中的Session_Start,但我无法使用这些事件,因为他们还无法找到当前登录用户的UserId。
那么,在用户通过身份验证后运行一次过程的最佳方法是什么?
我用来调用程序的代码(maby可以改成不在这里使用userid吗?)
if (User.Identity.IsAuthenticated)
{
SqlConnection conn;
SqlCommand comm;
string connectionString = ConfigurationManager.ConnectionStrings["LoginProject"].ConnectionString;
conn = new SqlConnection(connectionString);
string UserId = Membership.GetUser().ProviderUserKey.ToString();
comm = new SqlCommand("TrackLoggedInUser", conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@UserId", System.Data.SqlDbType.UniqueIdentifier);
comm.Parameters["@UserId"].Value = UserId;
comm.Parameters.AddWithValue("@UserLoginId", System.Data.SqlDbType.Int);
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch (Exception)
{
}
finally
{
conn.Close();
}
}
答案 0 :(得分:1)