0

我正在尝试检查用户何时通过身份验证,并且我总是得到用户通过身份验证。这是我的代码:

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

即使我登录和注销,这种情况也总是正确的。

我该如何纠正?

4

2 回答 2

0

试试这个:

if(HttpContext.Current.Request.IsAuthenticated) {

  //put code for Authenticated user 

}

或者交替

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

  //put code for Authenticated user 

}

希望这会有所帮助!

于 2012-12-01T14:57:13.513 回答
0

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

   // 假设您是否愿意根据用户的角色重定向用户
protected void LoginUser_LoggedIn(对象发送者,EventArgs e)
        {
            if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
            {
                // 如果用户在角色中并已通过身份验证
                if (Roles.IsUserInRole(LoginUser.UserName, "Developers"))
                {
                    // 添加会话并重定向到特定页面
                    Session.Add("开发者", "开发者");
                    Response.Redirect("../Developers/devAccess.aspx");

            }
        }
    }

于 2012-12-01T18:54:26.663 回答