C# 识别已登录用户的最佳方法是什么?

C# 识别已登录用户的最佳方法是什么?,c#,asp.net,C#,Asp.net,在使用asp.net登录控件时,我一直在寻找跟踪已登录用户的有效方法 if (!IsPostBack) { if (Membership.GetUser() != null) { var user = Membership.GetUser(); Session["user"] = user; } else

在使用
asp.net
登录控件时,我一直在寻找跟踪已登录用户的有效方法

        if (!IsPostBack)
        {
            if (Membership.GetUser() != null)
            {
                var user = Membership.GetUser();
                Session["user"] = user;
            }
            else
            {
                Session["user"] = "";
            }
        }

如果您有任何建议,我们将不胜感激。

您可以通过以下方式获得用户身份(如果您使用asp.net表单成员身份):


您可以通过以下方式获得用户标识(如果您使用的是asp.net表单成员身份):


为什么会有这样的痛苦,为什么要尝试将其保存在会话中(这是用户特定的,而不是应用程序特定的),而您只需从该对象获取它:

HttpContext.Current.User

查看此项了解详细信息:

当您可以简单地从该对象获取它时,为什么要将所有这些痛苦以及为什么要尝试将其保存在会话(特定于用户而非特定于应用程序)中:

HttpContext.Current.User

查看此项了解详细信息:

您只需使用

User.Identity.Name

您只需使用

User.Identity.Name

登录时,如果用户有效,请使用:

FormsAuthentication.SetAuthCookie(login.UserName, false);
而不是依赖会话来存储用户登录状态

然后,您可以检查用户是否通过以下方式登录:

User.Identity.IsAuthenticated
并让他们的用户名执行以下操作:

User.Identity.Name

登录时,如果用户有效,请使用:

FormsAuthentication.SetAuthCookie(login.UserName, false);
而不是依赖会话来存储用户登录状态

然后,您可以检查用户是否通过以下方式登录:

User.Identity.IsAuthenticated
并让他们的用户名执行以下操作:

User.Identity.Name

您可以使用
User.Identity.Name


请查看您可以使用
User.Identity.Name

请看一看