在视图中检索用户名的区别是什么?
<%= Page.User.Identity.Name %>
或者
<%= Membership.GetUser().UserName %>
在视图中检索用户名的区别是什么?
<%= Page.User.Identity.Name %>
<%= Membership.GetUser().UserName %>
Page.User.Identity.Name提供当前已登录用户的身份信息。Membership.GetUser()允许您获取有关用户的信息。
顺便说一下,调用不带参数的getUser()与调用Membership.GetUser()是相同的。
Membership.GetUser(Page.User.Identity.Name)
当页面通过管道时,Page.User.Identity会被填充。
Membership.GetUser().UserName会再次从数据库、Active Directory或其他提供程序支持的地方获取信息,因此会导致第二个查找。
由于它不太可能改变,所以我建议使用 Page.User.Identity。
请注意,User.Identity.Name
可能引用一个在成员资格数据库中甚至不存在的用户。这是表单身份验证和一个抽象概念的一般化,即 User
不一定存在于成员资格数据库中。
如果您从成员资格数据库中删除当前用户,则 User.Identity.Name
将保留其原始值。