C# ASP.net多个用户登录
关于时钟输入/输出站点。当用户A登录时,它会显示他的签入/签出。然后用户B登录。当A刷新页面时,他得到B的签入/签出。C# ASP.net多个用户登录,c#,asp.net,C#,Asp.net,关于时钟输入/输出站点。当用户A登录时,它会显示他的签入/签出。然后用户B登录。当A刷新页面时,他得到B的签入/签出。 我可能这样做是错误的,因为当用户登录服务器端c#时,我会将用户名存储在一个公共变量中,通过不同的页面检查站点上的许多其他权限 if (publiclasses.isValid == true) { publiclasses.unilogin = UserNametextbox.Text.ToString(); publiclass
我可能这样做是错误的,因为当用户登录服务器端c#时,我会将用户名存储在一个公共变量中,通过不同的页面检查站点上的许多其他权限
if (publiclasses.isValid == true)
{
publiclasses.unilogin = UserNametextbox.Text.ToString();
publiclasses.Checkifmissinglogout();
Response.Redirect("checkin.aspx");
}
如何以不同的方式保存用户,使其始终保持“唯一”,而不仅仅覆盖存储的旧用户?使用公共变量将在所有用户会话中共享,并引入并发问题,所有这些都假设它是静态的 要将其分离,必须使用会话 例:
您必须确保在引用当前公共变量的任何代码段中使用会话变量您需要为用户实现某种if标识。有很多方法可以做到这一点,但这取决于最适合您的确切ASP.NET变体。大多数web应用程序都使用它 基本上,当用户A登录时,他们会得到一个cookie,上面写着他们是A。他们随后提出的每个请求都会附加该cookie,您可以从中获得他们是哪个用户 简单来说,这很容易:
// In sign in POST back
Response.Cookies.Append("user", username);
// In further pages:
string username = Request.Cookies["user"];
然而,这将使B很容易伪装成A,这是不安全的。内置的.NET方法将创建一个更安全的加密cookie。能否显示更多的代码、登录和数据检索。这还不足以看出哪里出了问题。您将数据存储在哪里?(在会话中,数据库中的本地存储?)尝试为多个用户使用cookie或会话。更好地使用能够轻松处理用户的会话。我在你的代码中看不到类似的东西。
// In sign in POST back
Response.Cookies.Append("user", username);
// In further pages:
string username = Request.Cookies["user"];