![](/img/trans.png)
[英]I want to redirect from login.aspx to address.aspx if the user insert the correct username and password
[英]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.