我正在尝试检查用户何时通过身份验证,并且我总是得到用户通过身份验证。这是我的代码:
if( User.Identity.IsAuthenticated )
{
addProfiledata();
}
即使我登录和注销,这种情况也总是正确的。
我该如何纠正?
试试这个:
if(HttpContext.Current.Request.IsAuthenticated) {
//put code for Authenticated user
}
或者交替
if(User.IsInRole("rolename")) {
//put code for Authenticated user
}
希望这会有所帮助!
如果您已经定义了用户角色,那么它应该被处理,您正在使用 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");} } }