gpt4 book ai didi

asp.net - 跨虚拟目录的表单例份验证

转载 作者:行者123 更新时间:2023-12-05 00:30:55 24 4
gpt4 key购买 nike

我正在尝试将表单例份验证从根应用程序共享到在虚拟目录中运行的子应用程序。我在子站点中进行身份验证时遇到问题。

在父应用程序中,一切都按预期工作。

我有以下设置:

家长申请:

  • 网址 : http://localhost:1336/
  • <forms loginUrl="~/account/sign-in" protection="All" timeout="30" name=".MYAPPLICATION" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="true" defaultUrl="/" />

  • 虚拟目录:
  • 网址 : http://localhost:1336/subsite
  • <forms loginUrl="/account/sign-in" protection="All" timeout="30" name=".MYAPPLICATION" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="true" defaultUrl="/" />

  • 当我尝试 http://localhost:1336/subsite我得到以下流程:
  • 获取 对于 http://localhost:1336/subsite -> 302 到/account/sign-in?ReturnUrl=%2fsubsite(看起来不错)
  • 输入用户名/密码
  • 发布 http://localhost:1336/account/sign-in?ReturnUrl=%2fsubsite -> 302/subsite(伟大的身份验证看起来很成功)
  • 获取 对于 http://localhost:1336/subsite -> 302 到/account/sign-in?ReturnUrl=%2fsubsite (IE 子网站认为它没有经过身份验证)

  • 我也可以在浏览器的列表中看到 cookie(所以它确实在那里)

    我的配置有什么问题阻止我的子站点共享父 cookie?

    我在 IISExpress 上运行它

    最佳答案

    在您的 web.config 文件中,设置项目之间的通用机器 key ,以便 2 个域共享验证和解密 key 。

    例子:

    <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7" 
    decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
    validation="SHA1"
    decryption="AES"
    />

    关于asp.net - 跨虚拟目录的表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15603289/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com