当我注销Page.User.Identity.Name的值仍然包含用户名而不是在那里放空字符串。 有人知道为什么吗? 我正在使用visual studio 2010,c#
答案 0 :(得分:1)
除了身份名称所包含的内容之外,我认为您应该更关心这一点:
if (User.Identity.IsAuthenticated)
{
// Current user is Authenticated
}
else
{
// Current user is NOT Authenticated
}
答案 1 :(得分:1)
如果您使用模板创建网站,那么您可能正在使用表单身份验证。
当您单击“注销”时,您需要触发一个包含此代码的事件
FormsAuthentication.SignOut();
这应删除与用户相关的所有必要会话/ cookie。
答案 2 :(得分:0)
我之前遇到过类似的问题。我做了一些研究,听起来可能与页面缓存有关。
我的解决方法是将此问题重定向到另一个页面(即登录页面或主页)。
希望有所帮助。
答案 3 :(得分:0)
您是否在查看同一个请求中的值?如果是这样,那么名称将在那里,因为用户仍然对该请求进行了身份验证(在ASP.NET早期进行身份验证)。在下一个请求中,您应该看到用户不再经过身份验证(您要查找的值将为空string
)。
相反,当您首次对用户进行身份验证时,您会看到当前请求未经过身份验证,但在后续请求中将会被身份验证。