我创建了一个登录页面,用户必须提供用户名和密码才能访问某些特定资源,他们可以上传图片,或者只是编辑一些关于他们自己的描述。 我的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;总是返回true,因此未经授权的人将会看到应隐藏的内容。
我不确定:HttpContext.Current.User.Identity.IsAuthenticated; 我只是用Google搜索“如何检查用户是否已登录”,建议如下: HttpContext.Current.User.Identity.IsAuthenticated;
我只想登录的人查看私人内容。我该怎么做?如何使:HttpContext.Current.User.Identity.IsAuthenticated仅在用户登录时返回true? 感谢
答案 0 :(得分:7)
if (Request.IsAuthenticated) {.....}
根据一些评论进行编辑 通过“表格”进行身份验证,请点击此处
如果使用基于身份验证的表单, HttpContext.Current.User.Identity.IsAuthenticated
//将成为“表单”
//“Negotiate”正在使用Windows集成
//等
如果使用.net 4.5并且您想要“SET”用户声明。 ClaimsPrincipal is recommended reading
答案 1 :(得分:3)
bool isLoggedIn = System.Web.HttpContext.Current.User.Identity.IsAuthenticated
答案 2 :(得分:0)
我的编码是
bool val1 = (System.Web.HttpContext.Current.User != null) &&
(System.Web.HttpContext.Current.User.Identity.IsAuthenticated) &&
(System.Web.HttpContext.Current.User.Identity.AuthenticationType.ToString() == "Forms");
用于识别具有域登录和登录形式的用户