检索视图的用户名有什么区别?
<%= Page.User.Identity.Name %>
或
<%= Membership.GetUser().UserName %>
答案 0 :(得分:4)
根据the documentation,GetUser
从数据源获取信息,并更新当前登录成员资格用户的上次活动日期/时间戳。 < / p>
Page.User.Identity.Name
不这样做。它读取内存中随时可用的信息。
答案 1 :(得分:3)
Page.User.Identity.Name给出当前登录用户的身份。 Membership.GetUser()允许您获取有关用户的信息。
BTW,调用不带参数的getUser()与
相同Membership.GetUser(Page.User.Identity.Name)
因此,如果您只需要userName,请使用Page.User.Identity.Username并使用Membership.GetUser()获取有关用户的更多信息,例如电子邮件,或者对用户执行操作,例如更改密码
希望它会有所帮助
答案 2 :(得分:2)
Page.User.Identity会被填充。
Membership.GetUser()。UserName从数据库,Active Directory或提供程序支持的任何其他地方再次获取信息,从而导致第二次查找。
它不太可能改变,所以我使用Page.User.Identity。
答案 3 :(得分:0)
请注意,User.Identity.Name
很可能引用成员数据库中甚至不存在的用户。这是表单身份验证和User
概念的一般抽象,它甚至不一定存在于成员资格数据库中。
如果从成员资格数据库中删除当前用户,则User.Identity.Name
将保留其原始值。