当用户注销时,会从Page_Load调用Membership.GetUser?怎么预防这个?

时间:2009-10-23 21:36:37

标签: c# asp.net

这可能是应该发生的方式,但我有一个aspx页面,在页面加载事件中,我调用MembershipUser user = Membership.GetUser(),它获取当前登录用户的信息。现在,如果我没有母版页,这可以正常工作,但在这种情况下,页面与母版页相关联。发生的事情是,当首次访问页面时,用户已登录,因此Membership.GetUser()工作正常,但是当用户从asp.net登录控件单击注销链接时,它会调用页面加载aspx页面再次调用Membership.GetUser(),它现在返回null并导致错误。

我是否在不正确的地方呼叫Membership.GetUser?我不知道该怎么办?

我是否只需检查Membership.GetUser()是否返回null?这很简单吗?

1 个答案:

答案 0 :(得分:1)

如果匿名用户和经过身份验证的用户都可以看到该页面,则需要检查GetUser是否返回null,或者检查User.Identity.IsAuthenticated。

如果匿名用户看不到该页面,您可以绑定到LoginStatus控件的LoggedOut事件,并将用户重定向到适当的页面。