ASP.. NET检查LoginName是否为空

本文关键字:是否 LoginName NET 检查 ASP | 更新日期: 2023-09-27 18:15:58

我在VS2005 c#上有一个web应用程序,我想检查用户是否登录了应用程序。

当前我正在尝试

if (LoginName.Equals(null))
{
    Response.Redirect("/Project/Login.aspx");
}

但是我似乎得到一些错误。

谁能告诉我应该怎么做,或者有没有更好的检查方法?

谢谢


编辑:

很抱歉我的问题没有说清楚。

LoginNameSystem.Web.UI.WebControls.LoginName.

我得到的错误是'非静态字段,方法或属性需要对象引用'object. equals (object)'

ASP.. NET检查LoginName是否为空

您的实际问题似乎是我如何检查用户是否经过身份验证?你应该编辑你的题目。

使用ASP。您可以在文件后面的代码中使用以下代码检查用户是否经过身份验证:

User.Identity.IsAuthenticated

您可以访问用户名,例如使用

User.Identity.Name

如果LoginName变量是字符串,可以使用

if(string.IsNullOrEmpty(LoginName))
 {
 .....
 }

想想你写的东西:

if (LoginName.Equals(null))

这个语句可能以两种不同的方式结束:

  1. 可能返回false (LoginName不等于null)
  2. 抛出异常。为什么?如果LoginName确实等于null,你正在调用一个实例变量的方法,而这个实例变量没有设置为对象的实例(=>设置为null),因此你得到了一个NullReferenceException

那么你能做什么呢?

不使用Equals执行null检查(如上所示,这根本没有意义),您可以这样做:

if (LoginName == null)

或者

if (String.IsNullOrEmpty(LoginName))

System.Web.HttpContext.Current.User.Identity.IsAuthenticated

if(!User.Identity.IsAuthenticated)
Response.Redirect("'Projects'Login.aspx");

也可以使用会话变量