我创建了一个登录页面,用户必须提供用户名和密码才能访问某些特定资源,他们可以在其中上传图像,或者只是编辑一些有关自己的描述。
我的 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?
谢谢
if (Request.IsAuthenticated) {.....}
根据一些评论进行编辑
通过“表单”进行身份验证,请在此处查看
HttpContext.Current.User.Identity.IsAuthenticated
// 如果使用基于表单的身份验证,则将为“Forms”
// “Negotiate”正在使用Windows集成
// ETC
如果使用 .net 4.5 并且您想要“SET”用户声明。
这ClaimsPrincipal 推荐阅读
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)