我在我的测试中使用了
请帮忙查看我的测试代码。
我确信
我不确定我是否遗漏了什么或者做错了什么。如果有的话,请帮忙指出。谢谢。
补充说明:
我阅读了
表单身份验证 (Form Authentication)
。同时还有一些测试用户名。但是发现一个特别奇怪的问题,就是除了一个名叫amybeyond
的测试用户名之外,所有的测试用户名都可以在测试中工作。请帮忙查看我的测试代码。
LoginTest.aspx(这是一个用于输入用户名和密码的登录表单。)
public partial class LoginTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//after succeed validating user. then redirect to LoginSuccess.aspx page.
bool bValidate=Membership.ValidateUser("amybeyond", "11111111");
if (bValidate)
{
FormsAuthentication.SetAuthCookie("AmyBeyond", false);
Response.Redirect("LoginSuccess.aspx");
}
}
}
LoginSuccess.aspx (在这个页面中,只需简单地检测当前请求是否已被验证并进行重定向。)
public partial class LoginSuccess : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//the HttpContext.Current.Request.IsAuthenticated always false in the IE.
if (HttpContext.Current.Request.IsAuthenticated)
{
Response.Write("ok, you login successfully.");
}
}
}
我确信
Membership.ValidateUser
已经成功执行并返回true。问题是在成功重定向后,它无法知道认证状态。我不确定我是否遗漏了什么或者做错了什么。如果有的话,请帮忙指出。谢谢。
补充说明:
我阅读了
FormsAuthentication.SetAuthCookie
的源代码,并在Web.config
的Forms
元素中添加了cookieless="UseCookies"
。希望确保cookie已添加到Response
(这是通过源代码HttpContext.Current.Response.Cookies.Add(cookie)
完成的)。但仍然不起作用。public static void SetAuthCookie(string userName, bool createPersistentCookie, string strCookiePath)
{
Initialize();
HttpContext current = HttpContext.Current;
if (!current.Request.IsSecureConnection && RequireSSL)
{
throw new HttpException(SR.GetString("Connection_not_secure_creating_secure_cookie"));
}
bool flag = CookielessHelperClass.UseCookieless(current, false, CookieMode);
HttpCookie cookie = GetAuthCookie(userName, createPersistentCookie, flag ? "/" : strCookiePath, !flag);
if (!flag)
{
HttpContext.Current.Response.Cookies.Add(cookie);
current.CookielessHelper.SetCookieValue('F', null);
}
else
{
current.CookielessHelper.SetCookieValue('F', cookie.Value);
}
}
新增
http捕获详细信息如下。在LoginTest.aspx
页面中有一个名为FwLoginCookie
的cookie,重定向到LoginSuccess.aspx
后此cookie丢失。请帮忙检查。