为什么FormsAuthentication.SetAuthCookie在IE中不起作用

王乔

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已成功执行和return true问题是成功重定向后无法知道身份验证状态。

我不知道我错过了什么还是做错了什么。如果有 。请帮忙告诉我。谢谢。

添加

我阅读了的源代码FormsAuthentication.SetAuthCookie并在cookieless="UseCookies"添加Forms元素Web.config希望确保将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捕获详细信息如下所示。重定向到此Cookie丢失LoginTest.aspx有一个名为的cookie。请帮忙复习一下。FwLoginCookieLoginSuccess.aspx

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

王乔

终于明白了为什么发生这种奇怪的事情!这是因为还有另一个名为ACA_USER_READ_ANNOUNCEMENT发送给响应的cookie 它太大(超过5800bytes),以至于浏览器(在我的测试中是IE)会忽略所有cookie,其中包括Form身份验证cookie(大约300bytes)。但是,遇到这种情况(巨大的cookie大小)时,其他浏览器(例如chrome / firefox)与IE的行为就不一样。

如果不对。请纠正我。谢谢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

FormsAuthentication.SetAuthCookie不起作用

来自分类Dev

FormsAuthentication.SetAuthCookie不起作用

来自分类Dev

如果设置了FormsAuthentication Ticket,为什么User.IsInRole(“ Admin”)不起作用?

来自分类Dev

如果设置了FormsAuthentication Ticket,为什么User.IsInRole(“ Admin”)不起作用?

来自分类Dev

不到在IE11中不起作用-为什么?

来自分类Dev

为什么 ChartJs 在 IE 中不起作用

来自分类Dev

SetTimeout在FireFox中不起作用,但在IE中很好,想知道为什么吗?

来自分类Dev

为什么 css 在 Firefox 和 Chrome 中按预期工作时在 IE 中不起作用?

来自分类Dev

在PHP中为什么不起作用

来自分类Dev

为什么我的CSS颜色转换在IE10中不起作用?

来自分类Dev

为什么此脚本在IE8中不起作用?

来自分类Dev

为什么我的代码在IE11中不起作用

来自分类Dev

为什么$(window).load()在IE10中不起作用

来自分类Dev

为什么forEach()在IE11的iframe中不起作用?

来自分类Dev

为什么我用来显示/隐藏div的JavaScript在IE中不起作用?

来自分类Dev

为什么我的图标字体仅在Windows 8上的IE10中不起作用?

来自分类Dev

为什么我的CSS颜色转换在IE10中不起作用?

来自分类Dev

为什么手风琴在IE8中不起作用?

来自分类Dev

为什么plupload库在IE8中不起作用

来自分类Dev

为什么我的CSS在IE10中不起作用?

来自分类Dev

为什么我的弹出脚本在ie9中不起作用?

来自分类Dev

为什么资源预取在IE11中不起作用?

来自分类Dev

为什么背景图片在IE9中不起作用?

来自分类Dev

为什么我的代码在IE11中不起作用

来自分类Dev

为什么HTML5输入的数字类型不起作用或在IE10中偶尔起作用

来自分类Dev

使用FormsAuthentication CustomIdentity和更新AuthTicket UserData时,为什么登录重定向在MVC中失败?

来自分类Dev

为什么不起作用?

来自分类Dev

为什么HTML复选框功能仅在IE中有效,而在Firefox或Chrome中不起作用?

来自分类Dev

在ie中使用js时,className在某些代码中不起作用。有谁知道为什么?

Related 相关文章

  1. 1

    FormsAuthentication.SetAuthCookie不起作用

  2. 2

    FormsAuthentication.SetAuthCookie不起作用

  3. 3

    如果设置了FormsAuthentication Ticket,为什么User.IsInRole(“ Admin”)不起作用?

  4. 4

    如果设置了FormsAuthentication Ticket,为什么User.IsInRole(“ Admin”)不起作用?

  5. 5

    不到在IE11中不起作用-为什么?

  6. 6

    为什么 ChartJs 在 IE 中不起作用

  7. 7

    SetTimeout在FireFox中不起作用,但在IE中很好,想知道为什么吗?

  8. 8

    为什么 css 在 Firefox 和 Chrome 中按预期工作时在 IE 中不起作用?

  9. 9

    在PHP中为什么不起作用

  10. 10

    为什么我的CSS颜色转换在IE10中不起作用?

  11. 11

    为什么此脚本在IE8中不起作用?

  12. 12

    为什么我的代码在IE11中不起作用

  13. 13

    为什么$(window).load()在IE10中不起作用

  14. 14

    为什么forEach()在IE11的iframe中不起作用?

  15. 15

    为什么我用来显示/隐藏div的JavaScript在IE中不起作用?

  16. 16

    为什么我的图标字体仅在Windows 8上的IE10中不起作用?

  17. 17

    为什么我的CSS颜色转换在IE10中不起作用?

  18. 18

    为什么手风琴在IE8中不起作用?

  19. 19

    为什么plupload库在IE8中不起作用

  20. 20

    为什么我的CSS在IE10中不起作用?

  21. 21

    为什么我的弹出脚本在ie9中不起作用?

  22. 22

    为什么资源预取在IE11中不起作用?

  23. 23

    为什么背景图片在IE9中不起作用?

  24. 24

    为什么我的代码在IE11中不起作用

  25. 25

    为什么HTML5输入的数字类型不起作用或在IE10中偶尔起作用

  26. 26

    使用FormsAuthentication CustomIdentity和更新AuthTicket UserData时,为什么登录重定向在MVC中失败?

  27. 27

    为什么不起作用?

  28. 28

    为什么HTML复选框功能仅在IE中有效,而在Firefox或Chrome中不起作用?

  29. 29

    在ie中使用js时,className在某些代码中不起作用。有谁知道为什么?

热门标签

归档