Asp.net FormsAuthentication.RedirectFromLoginPage Vs Response.Redirect

Asp.net FormsAuthentication.RedirectFromLoginPage Vs Response.Redirect,asp.net,authentication,redirect,Asp.net,Authentication,Redirect,这是关于这里和这里提出的一个问题 虽然我已经回答了第一个问题,但我承认这只是“共同关联编程”。若你们看到了,以上两个问题的答案互相矛盾,但仍然适用于各自的用户 我想知道这两者的确切区别是什么 FormsAuthentication.SetAuthCookie(USER_NAME, true); Response.Redirect("copyPastPage.aspx"); 这格式为身份验证.RedirectFromLoginPage(mainSignUp.UserName,true) 在使

这是关于这里和这里提出的一个问题

虽然我已经回答了第一个问题,但我承认这只是“共同关联编程”。若你们看到了,以上两个问题的答案互相矛盾,但仍然适用于各自的用户

我想知道这两者的确切区别是什么

FormsAuthentication.SetAuthCookie(USER_NAME, true);

Response.Redirect("copyPastPage.aspx"); 
格式为身份验证.RedirectFromLoginPage(mainSignUp.UserName,true)

在使用方面,我们可以看到响应的逻辑差异。重定向允许重定向到任何URL,而RedirectFromLoginPage只重定向到推荐人。但这就是用法的不同

他们的执行方式有什么根本区别吗?如果没有,你有没有想过为什么一个人有时会工作,为什么另一个人有时会工作?在他们的引擎盖下到底发生了什么


我有谷歌一点,但无法得到任何具体的答案

如果您查看
RedirectFromLoginPage
中的代码,它的作用基本相同

  • SetAuthCookie
  • 从查询字符串获取返回URL
  • 清除返回URL
以下是一个片段:

    HttpContext current = HttpContext.Current;
    string returnUrl = GetReturnUrl(true);
    if (CookiesSupported || IsPathWithinAppRoot(current, returnUrl))
    {
        SetAuthCookie(userName, createPersistentCookie, strCookiePath);
        returnUrl = RemoveQueryStringVariableFromUrl(returnUrl, FormsCookieName);
        if (!CookiesSupported)
        {
            int index = returnUrl.IndexOf("://", StringComparison.Ordinal);
            if (index > 0)
            {
                index = returnUrl.IndexOf('/', index + 3);
                if (index > 0)
                {
                    returnUrl = returnUrl.Substring(index);
                }
            }
        }

但是它也会检查对cookie的支持。

好的,但是为什么在某些情况下一个选项不起作用呢?是的,如果浏览器不支持cookie,那么您的自定义代码将无法处理它。我得到了这张非常好的图片,它描述了RedirectFromLoginPage API使用的决策算法的流程图,该算法由登录控件的默认实现调用(一旦用户被验证),它是asp.Net成员资格和角色提供程序的一部分@RBT这是一个死链接