我在.NET Web应用程序中看到了一个奇怪的行为.它很少发生,但如果我坐在页面上并继续按F5,最终我会有Membership.GetUser()返回NULL,即使Request.IsAuthenticated返回true.
if (Request.IsAuthenticated)
{
MembershipUser user = Membership.GetUser(); //user is occasionally null.
}
Run Code Online (Sandbox Code Playgroud)
我的理解是,这不应该发生,问题的间歇性使我认为这是一个错误,但除了将GetUser()调用放在WHILE循环中(这消除了问题,因为GetUser()在第二个工作尝试),我不知道还能找到导致这种情况的原因.我们在另一台服务器上使用Web服务作为我们的成员资格提供者,但我已将此消除为超时问题,这会返回不同的错误.