gpt4 book ai didi

asp.net - 为什么我在共享主机上不断收到 HTTP 403 错误?

转载 作者:行者123 更新时间:2023-12-04 03:13:03 25 4
gpt4 key购买 nike

我有一个 MVC 5 应用程序,它是在 .NET 4.6 和 MVC 5.2.3 下开发的,当我在我的机器上的 Chrome 和 Edge 中调试它时,它可以 100% 工作。当我部署到我的 ISP 的共享主机时,在第一个成功并显示登录页面的请求之后,它会在每个请求上给出以下错误。

403 - 禁止访问:访问被拒绝。您无权使用您提供的凭据查看此目录或页面。

然后,如果我从 Chrome 中清除一个名为 .AspNet.ApplicationCookie 的 cookie,那么下一个请求会成功,但 cookie 又回来了,所有后续请求都以同样的方式失败。

我没有在我自己的任何代码中使用应用程序状态,我添加到标准 VS2015 项目模板附带的包的唯一包是:

AutoMapper
elmah.corelibrary
Elmah.Mvc
Unity
Unity.Mvc5

如果我做对了,当我在 Edge 中检查 cookie 时,没有这样的 cookie,只有 __RequestVerificationToken,它在 Chrome 中不起作用(超出这个问题的范围)。

注意:我现在已经更改了托管服务提供商,自从应用程序启动后的第一次请求后几乎每个请求都收到 403,现在我大约每隔 1 到 2 次就会被重定向到我的登录页面分钟。看起来一家供应商正在更好地处理我缺乏身份验证的问题,但我强烈怀疑这两个问题都是由于 session 丢失造成的。这可能是由于共享主机上的资源有限,所以我尝试将 session 转移到 SQL Server 上,但这没有任何区别,而且 Elamh 没有显示任何错误,所以我不知道我的 session 转移是否有效。

最佳答案

我认为您正在使用新的 dotnet 核心 Cookie 中间件。此中间件在 cookie 值内加密您的 session 数据。

问题是加密/解密是基于每个应用程序主机唯一的 key (基于机器 key )完成的。因此,如果您的请求到达的实例与您的 session cookie 加密的实例不同,它就无法解密您的 cookie,因此认为您未通过身份验证!

您可以通过实现不同的后备存储(如 redis 或 sql server)来更改此行为。

阅读有关如何执行此操作的文档:https://learn.microsoft.com/en-us/aspnet/core/security/authentication/cookie

关于asp.net - 为什么我在共享主机上不断收到 HTTP 403 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43437952/

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