C# 如何检查用户是否为;“登录”吗;?
我在我的ASP.NET应用程序中使用以下方法进行表单身份验证C# 如何检查用户是否为;“登录”吗;?,c#,asp.net,forms-authentication,C#,Asp.net,Forms Authentication,我在我的ASP.NET应用程序中使用以下方法进行表单身份验证 FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true); 如何检查用户是否已登录?如何获取登录用户的用户名?检查他们是否经过身份验证的最简单方法是Request.user.IsAuthenticated(从内存中)我想我找到了正确的用户名。它在下面 bool val1 = System.Web.HttpContext.Current.User.Identit
FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);
如何检查用户是否已登录?如何获取登录用户的用户名?检查他们是否经过身份验证的最简单方法是
Request.user.IsAuthenticated
(从内存中)我想我找到了正确的用户名。它在下面
bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated
编辑
这篇编辑的功劳归于在评论中提出这一建议的人
bool val1 = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
最简单的方法是:
if (Request.IsAuthenticated) ...
“Request.LogonUserIdentity”类给出了所有这些方法和属性。谢谢你的提示,不要留胡子。这将显示windows帐户是否已登录。即使您的cookies被删除,您也可以看到窗口帐户和登录名的用户名。这个对我有用。“bool val1=System.Web.HttpContext.Current.User.Identity.IsAuthenticated”只是为更安全的代码做了一点修改:bool val1=(System.Web.HttpContext.Current.User!=null)和&System.Web.HttpContext.Current.User.Identity.IsAuthenticated在较新版本的C#中,您可以使用
User?.Identity.IsAuthenticated==true
。或User?.Identity.IsAuthenticated??false
,但是@bradlis7的代码可能更容易阅读。或者(User?.Identity.IsAuthenticated)。GetValueOrDefault()
看到这种方法没有那么多的升级投票,使用这种方法时有什么缺点/问题需要注意吗?我决定使用它,到目前为止,它似乎很有效。它几乎与最受欢迎的答案相同,但我们这里没有使用名称空间。它与User.Identity.IsAuthenticated
if (User.Identity.IsAuthenticated)
{
Page.Title = "Home page for " + User.Identity.Name;
}
else
{
Page.Title = "Home page for guest user.";
}