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

ASP.NET Cookieless Forms在登录页面被加入书签时不设置cookie

发布时间:2020-12-16 09:34:39 所属栏目:asp.Net 来源:网络整理
导读:我们的ASP.NET 4.0应用程序的表单身份验证设置为cookieless =“AutoDetect”.我注意到,如果用户为我们的登录页面添加书签,则书签链接设置为 https://hostname.com/Login.aspx?AspxAutoDetectCookieSupport=1.如果用户直接从新的浏览器会话导航到此并执行有效
我们的ASP.NET 4.0应用程序的表单身份验证设置为cookieless =“AutoDetect”.我注意到,如果用户为我们的登录页面添加书签,则书签链接设置为 https://hostname.com/Login.aspx?AspxAutoDetectCookieSupport=1.如果用户直接从新的浏览器会话导航到此并执行有效登录,则不会设置cookie.如果我直接导??航到该页面,请从查询字符串中删除AspxAutoDetectCookieSupport,正确创建cookie.

如果用户直接导航到Default.aspx或根目录,则登录功能正确,即使将AspxAutoDetectCookieSupport = 1添加到查询字符串上也是如此.

当用户单击登录按钮时,我们会对登录页面进行回发,并根据我们的数据库手动检查用户凭据.如果成功,我们会:

FormsAuthentication.RedirectFromLoginPage(userName,false);

我花了很多时间来调试它,包括查看参考源中的ASP.NET表单身份验证代码,并且无法确定导致此问题的原因.我们目前唯一的解决方案是告诉用户从他们的书签URL中删除登录页面,并在我们的登录页面上添加书签按钮供用户点击.

是否有其他解决方案来修复此表单身份验证问题?它是一种形式认证吗?

解决方法

这里的问题是您始终使用RedirectFromLoginPage,无论是否提供重定向位置.如果未提供,则重定向将失败.对此的正确解决方案是检查重定向URL并重定向到default.aspx(如果它不可用)(从 this blog article借来的源示例):

// Once the user's entered credentials are verified //
if(Request.Params["ReturnUrl"] != null)
{
    FormsAuthentication.RedirectFromLoginPage(txtUserName.text,false);
}
else
{
    FormsAuthentication.SetAuthcookie(txtUserName.text,false);
    Response.Redirect("Default.aspx");
}

(编辑:李大同)

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

    推荐文章
      热点阅读