加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – FormsAuthentication.RedirectFromLoginPage与Respon

发布时间:2020-12-16 03:37:20 所属栏目:asp.Net 来源:网络整理
导读:这是参考 Login user after signup和 FormsAuthentication.RedirectFromLoginPage reload page这里提出的问题. 虽然我已经回答了第一个问题,但我承认它只是“共同编程”.如果你看到,上述两个问题的答案相互矛盾,但仍然适用于各自的用户. 我想知道这之间究竟
这是参考 Login user after signup和 FormsAuthentication.RedirectFromLoginPage reload page这里提出的问题.

虽然我已经回答了第一个问题,但我承认它只是“共同编程”.如果你看到,上述两个问题的答案相互矛盾,但仍然适用于各自的用户.

我想知道这之间究竟有什么区别

FormsAuthentication.SetAuthCookie(USER_NAME,true);

Response.Redirect("copyPastPage.aspx");

而这个FormsAuthentication.RedirectFromLoginPage(mainSignUp.UserName,true);

在使用方面,我们可以看到Response.Redirect可以允许重定向到任何URL的逻辑差异,因为RedirectFromLoginPage只会重定向到referrer.但那是用法差异.

他们的执行方式是否存在根本分歧?如果没有,任何想法为什么一个人有时会工作,为什么有时呢?在他们每个人的引擎盖下究竟发生了什么?

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

解决方法

如果你看一下RedirectFromLoginPage中的代码,它基本上是一样的

> SetAuthCookie
>从查询字符串中获取返回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的支持.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读