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这是一个死链接