ASP.NET检查LoginName是否为null

时间:2011-11-29 09:32:57

标签: c# asp.net

我在VS2005 C#上有一个Web应用程序,我想检查用户是否已登录该应用程序。

目前正在尝试

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

但我似乎遇到了一些错误。

任何人都可以告诉我应该怎么做,还是有更好的方法检查?

谢谢


编辑:

很抱歉我的问题不清楚。

LoginName System.Web.UI.WebControls.LoginName

我得到的错误是`非静态字段,方法或属性'object.Equals(object)'

需要对象引用

4 个答案:

答案 0 :(得分:2)

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

使用ASP.NET身份验证提供程序时,您可以检查用户是否在代码隐藏文件中使用此代码进行身份验证:

User.Identity.IsAuthenticated

您可以使用

访问用户名
User.Identity.Name

答案 1 :(得分:1)

如果LoginName变量是一个字符串,您可以使用此

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

答案 2 :(得分:1)

想想你写的是什么:

if (LoginName.Equals(null))

本声明可能以两种不同的方式结束:

  1. 可能会返回falseLoginName不等于null
  2. 抛出异常。为什么?如果LoginName确实等于null,那么您正在调用未设置为对象实例的实例变量的方法(=>设置为null),因此您得到NullReferenceException
  3. 那你能做什么?

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

    if (LoginName == null)
    

    或者你可以做到

    if (String.IsNullOrEmpty(LoginName))
    

    这会更好。

答案 3 :(得分:0)

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

if(!User.Identity.IsAuthenticated)
Response.Redirect("\Projects\Login.aspx");
可以使用

,也可以使用会话变量