gpt4 book ai didi

asp.net - HttpContext.Current.User.Identity.Name 在同一网站 : isn't this insecure? 的所有应用程序之间共享

转载 作者:行者123 更新时间:2023-12-04 05:32:21 24 4
gpt4 key购买 nike

我很惊讶:我在同一个网站下创建了 2 个独立的应用程序(假设为 2 个不同的客户端)。我在每个 web.config 中有单独的登录名/密码列表,但我可以将第一个应用程序的 HttpContext.Current.User.Identity.Name 放入第二个应用程序!

Sessions 变量不在两者之间共享,但这对于 HttpContext.Current.User.Identity.Name 来说仍然很不安全吗?这意味着客户端 2 将能够访问客户端 1 用户浏览到客户端 2 应用程序,而无需对客户端 2 网站进行身份验证。

最佳答案

如果您在每个应用程序的 web.config 中的 machinekey 元素中使用不同的解密 key ,它将确保用户无法在不重新登录的情况下在应用程序之间导航。

以下示例来自 MSDN :

<machineKey
validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1" />

您也许还可以使用 IsolateApps 修饰符而不是生成键,但我发现在您希望它们共享的级别专门设置键可以让您更好地控制该过程。您可以在网上找到各种用于生成这些 key 的工具,或者您可以根据 Microsoft 的加密类推出自己的工具。

请注意,在 IIS 结构中更高级别的 web.config 中设置的键会自动“下坡”流向子应用程序,除非您在它们的 web.config 中专门覆盖它。你的情况可能就是这样。

关于asp.net - HttpContext.Current.User.Identity.Name 在同一网站 : isn't this insecure? 的所有应用程序之间共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414321/

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