我在VS2005 C#上有一个Web应用程序,我想检查用户是否已登录该应用程序。
目前正在尝试
if (LoginName.Equals(null))
{
Response.Redirect("/Project/Login.aspx");
}
但我似乎遇到了一些错误。
任何人都可以告诉我应该怎么做,还是有更好的方法检查?
谢谢
编辑:
很抱歉我的问题不清楚。
LoginName
是 System.Web.UI.WebControls.LoginName 。
我得到的错误是`非静态字段,方法或属性'object.Equals(object)'
需要对象引用答案 0 :(得分:2)
您的实际问题似乎是如何检查用户是否经过身份验证??您应该编辑问题的标题。
使用ASP.NET身份验证提供程序时,您可以检查用户是否在代码隐藏文件中使用此代码进行身份验证:
User.Identity.IsAuthenticated
您可以使用
访问用户名User.Identity.Name
答案 1 :(得分:1)
如果LoginName变量是一个字符串,您可以使用此
if(string.IsNullOrEmpty(LoginName))
{
.....
}
答案 2 :(得分:1)
想想你写的是什么:
if (LoginName.Equals(null))
本声明可能以两种不同的方式结束:
false
(LoginName
不等于null
)LoginName
确实等于null
,那么您正在调用未设置为对象实例的实例变量的方法(=>设置为null
),因此您得到NullReferenceException
。那你能做什么?
不是使用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");
可以使用,也可以使用会话变量