检查用户是否经过身份验证始终是真的

时间:2012-12-01 14:46:28

标签: c# asp.net

我正在尝试检查用户何时进行身份验证,并且我始终认为用户已通过身份验证。这是我的代码:

 if( User.Identity.IsAuthenticated )
 {
     addProfiledata();
 }

即使我登录并退出,这种情况也是如此。

我该如何纠正?

2 个答案:

答案 0 :(得分:0)

请改为尝试:

if(HttpContext.Current.Request.IsAuthenticated) {

  //put code for Authenticated user 

}

或者替代

if(User.IsInRole("rolename")) {

  //put code for Authenticated user 

}

希望这会有所帮助!!

答案 1 :(得分:0)

如果您已经定义了用户角色,则应该对其进行处理,您正在使用LoginControl,我猜您正在使用其他登录控件(如loginview)处理唱歌,并希望您将用户角色分配给它。如果是这种情况,您可以使用LoginUser_LoggedIn事件

   // suppose if you are willing to redirect a user according to his/her role
protected void LoginUser_LoggedIn(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
            {
                // if user in role and authenticated 
                if (Roles.IsUserInRole(LoginUser.UserName, "Developers"))
                {
                    // add session and redirect to particular page
                    Session.Add("developer", "Developers");
                    Response.Redirect("../Developers/devAccess.aspx");

            }
        }
    }