C# ASP.NET中最专业的登录控制方式是什么?

C# ASP.NET中最专业的登录控制方式是什么?,c#,asp.net,login,C#,Asp.net,Login,比如说,我们不使用表单身份验证或成员资格。当用户请求应用程序的任何页面时,需要将其重定向到登录页面。 这样,每个页面都需要在页面加载时进行身份验证检查。但是如果我们有超过500页呢 是否有机会使用具有静态属性的静态类或创建自己的http处理程序?这是一个涉及多个方面的问题,包括: 如何管理用户的会话 如何管理正在登录的多个用户帐户 如何执行登录过程 管理用户的状态必须独立于其他任何人的操作。因此,不能依赖静态属性。这就提出了一个问题,我如何在不让它静止的情况下跟踪它?答案之一是使用会话信息。例如

比如说,我们不使用表单身份验证或成员资格。当用户请求应用程序的任何页面时,需要将其重定向到登录页面。 这样,每个页面都需要在页面加载时进行身份验证检查。但是如果我们有超过500页呢

是否有机会使用具有静态属性的静态类或创建自己的http处理程序?

这是一个涉及多个方面的问题,包括:

如何管理用户的会话 如何管理正在登录的多个用户帐户 如何执行登录过程 管理用户的状态必须独立于其他任何人的操作。因此,不能依赖静态属性。这就提出了一个问题,我如何在不让它静止的情况下跟踪它?答案之一是使用会话信息。例如,在向服务器发出Ajax请求的过程中,可以执行以下操作:

if (HttpContext.Current.Session["LoggedIn"] != null)
{
   object oValue = HttpContext.Current.Session["LoggedIn"];
   bool bResult;

   if (bool.TryParse((string)oValue, out bResult) == true)
      return bResult

   return false;
}
else
   return false;
这解决了前两个问题,并为创建一个hanlder类打开了一扇门,该类知道您获取不同类型值的特定会话键和模式


至于你将面临的第三个问题——没有人能给你一个具体的答案。您的设计和数据结构将决定您如何验证和跟踪用户。

您的静态变量是应用程序范围内的。一旦有人登录,所有人都已登录。如果您的用户已登录,请使用您的会话来存储,假设您可以使用粘性会话..和。。还可以使用cookies。有许多教程介绍如何在WebForms中提供身份验证。F.e:可能相关:@Juge:学习很好,但包括我自己在内的人都投票赞成过于广泛的理由。可能的答案太多,或者好的答案对于这种格式来说太长。请添加详细信息以缩小答案集或隔离一个可以在几段中回答的问题。当你觉得问题太宽泛且无法给出适当的答案时,正确的做法是投票/标记问题以结束,而不是发布答案来解释为什么你不能回答问题。他说,只是部分问题无法回答。而且他可能已经投票赞成结束选举了。@Servy-Jude说得对。提供的答案解决了代码提出的根本问题,并定义了哪些问题不能以这种格式解决,同时仍然试图为OP提供一些清晰的信息,以便他们使用提供的答案找到自己的解决方案。从任何定义来看,这都是一个足够的答案。这是一种非常不安全且容易出错的登录管理方式。IIS可以随时转储会话,然后您突然注销。会话也不安全,很容易被盗。自己做保安几乎总是一个糟糕的选择。很高兴知道。到目前为止,它已经为我们工作,但我们可能需要添加一些更深入的安全考虑和研究的积压。。。很高兴能得到反馈,从而在项目开发中得到实际应用。我很感激。一旦我做了更多的研究,我必须记得回来解决这个问题