ASP.net多个用户登录

时间:2016-12-21 07:36:54

标签: c# asp.net

关于时钟输入/输出站点。当用户A登录时,显示他的入住/退房。然后用户B登录。当A刷新页面时,他获得B的入住/退房。 我可能做错了,因为当用户登录服务器端时,我将用户名存储在公共变量中,c#也通过不同的页面检查网站上的许多其他权限。

   if (publiclasses.isValid == true)
     {
        publiclasses.unilogin = UserNametextbox.Text.ToString();
        publiclasses.Checkifmissinglogout();
        Response.Redirect("checkin.aspx");
     }

如何以不同的方式保存用户,始终保持“独特”,而不仅仅覆盖存储的旧用户?

2 个答案:

答案 0 :(得分:2)

使用公共变量将在所有用户会话中共享,并引入并发问题,所有这些都假设它是静态的。

要将其分开,您必须使用会话。

例如:

    Session["unilogin"] = UserNametextbox.Text.ToString();

您必须确保在引用当前公共变量的任何代码段中使用会话变量

答案 1 :(得分:0)

您需要为用户实现某种身份。有很多方法可以做到这一点,但它取决于最适合您的确切ASP.NET变体。大多数Web应用程序都使用cookies

基本上,当用户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。