繁体   English   中英

用户名+ [空格]导致login.aspx重定向,但Identity.IsAuthenticated为TRUE

[英]Username + [space] causes login.aspx redirect but Identity.IsAuthenticated is TRUE

我有一个导航控件,仅在母版页上显示给经过身份验证的用户。 测试显示

System.Web.HttpContext.Current.User.Identity.IsAuthenticated == true

我正在使用具有Active Directory成员身份和登录控件的表单身份验证。

如果我使用我的用户名登录并在末尾加一个空格...'username',则将页面指向返回URL 302,然后直接发送回login.aspx ...,但是在加载login.aspx页面时很奇怪第二次,IsAuthenticated仍然为true。

这意味着我们的登录页面错误地显示了导航...

因此,即使IsAuthenticated为true,现在也将我重定向到登录屏幕,有人可以解释为什么会这样吗?

显然,用户名中的空格是错误的,但是我想确保用户不会遇到这种情况。

此代码在所有其他情况下均能正常工作。

您说的没错...我在登录控件上找到了一个名为OnLoggingIn的方法...我只是用修饰符将用户名设置为其自身,因此效果很好。

protected void Login1_OnLoggingIn(object sender, System.Web.UI.WebControls.LoginCancelEventArgs e) 
    {
        Login1.UserName = Login1.UserName.Trim();
    }

这不是您要解决的问题的解决方案,但仍可以为您解决,应该通过IMO进行:

为什么不在处理用户名之前将Trim应用于用户名?

username = username.Trim();

这应该删除开头和结尾的所有空白,因此永远不会发生有问题的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM