最近使用 asp.net 碰到一个非常非常奇怪的问题:
我在页面上有一个 LoginName 控件,一个LoginStatus控件,还有一个Label 控件。
众所周知:LoginName 控件,可以显示当前的登录用户名;LoginStatus可以显示当前的登录状态;
而我的Label控件用来显示登录用户的中文名(这些信息存在于数据库中)然后,我用 Membership.GetUser().UserName 作为参数,来从数据库进行查询,获取到其中文名后,在Label中显示;正常情况下:
不登录时,LoginStatus 显示“登录”,LoginName 不显示;如果用户已登录,则LoginStatus显示“注销”;LoginName 显示登录的用户名,而Label显示中文名;
不正常时情况下:
LoginStatus 显示“注销”,而Label显示“未登录”(这个内容是我自己定义的)-------这时我不知道用户是登录了还是没有登录;非常非常疑惑的问题:
从网上查到,LoginName 是用User.Identity.Name来显示的,那么问题就来了:Membership.Getuser().UserName 与 User.Identity.Name 有什么区别,又有什么联系?
为什么一个显示为登录(User.Identity.Name),而另一个却显示为未登录(Membership.Getuser().UserName,这时MemberShip.GetUser()为null)?