【发布时间】:2011-04-28 21:28:20
【问题描述】:
我在 Asp.net 的登录页面上有一个奇怪的问题,这个问题只发生在 Safari 上。
验证用户后,我从数据库中获取用户名(数据库中的字段为 UTF8)并将其保存在 cookie 中。问题是,当用户的名字带有特殊字符时,我会被重定向到我来自的页面而没有登录。例如“Moller”工作正常,用户登录但不是“Møller”。
同样,这只发生在 Safari 和名称中包含特殊字符时。不起作用的行是:Response.Cookies["userInfo"]["name"] = getNameFromUserid(userid);
这是我的代码:
string userid = validUserWithEmail(TextBoxEmail.Text, TextBoxPassword.Text);
if (userid != null) {
//VALID USER
Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(30);
Response.Cookies["userInfo"]["name"] = getNameFromUserid(userid);
FormsAuthentication.RedirectFromLoginPage(userid, CheckBoxPersistCookie.Checked);
}
else
{
//NOT A VALID USER SHOW A MESSAGE FOR THE USER OR SOMETHING
}
【问题讨论】:
-
Safari 是 Windows 还是 Mac / iOS 版本?我的 asp.net 应用程序也有同样的问题,但仅限于 Mac 版本的 Safari。
标签: asp.net cookies redirect safari forms-authentication