我创建了一个登录页面,用户必须提供用户名和密码才能访问某些特定资源,他们可以在其中上传图像,或者只是编辑一些关于他们自己的描述。我的 web.config 文件如下所示:
<authentication mode="Forms">
<forms loginUrl="Secure/Login.aspx" defaultUrl="index.aspx" name=".ASPXFORMSAUTH" timeout="30"/>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
<location path="Secure">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
因此,当用户输入用户名和密码后,他将被重定向到 index.aspx 页面。根据用户是否登录,index.aspx 应该显示或隐藏一些内容。这是我检查他是否登录的方式:
bool isLoggedIn = HttpContext.Current.User.Identity.IsAuthenticated;
if (isLoggedIn)
{
placeHolder2.Visible = true;
...
}
现在的问题是:HttpContext.Current.User.Identity.IsAuthenticated; ALWAYS 返回 true,因此未经授权的人将看到应该隐藏的内容。
我不确定:HttpContext.Current.User.Identity.IsAuthenticated; 我刚刚搜索了“如何检查用户是否登录”,建议是:HttpContext.Current.User.Identity.IsAuthenticated;
我只希望登录的人查看私人内容。我该怎么做?如何使: HttpContext.Current.User.Identity.IsAuthenticated 仅在用户登录时返回 true?谢谢