c# - C# ASP 出于某种原因重定向到 ~/Account/Login - 当用户通过身份验证时
问题描述
我最近将我的 C# asp 项目从框架 v4.5 更新到 v4.8,并且还更新了引用的 nuget 包。这是一个 webdav 项目,让用户使用 webdav 样式浏览我们的 sql DB。在更新之前,一切都很好,就像一个魅力。
现在我可以看到使用 ntlm auth 访问 Web 项目时出现 401 未经授权的错误。出于某种原因,某些东西将我重定向到 ~/Account/Login 页面 - 在 IIS 端,Basic 和 Windows 身份验证仅被启用(表单和匿名被禁用)。
我尝试使用 curl 访问网络。使用 BASIC auth 它工作,但使用 ntlm 它没有 - 得到 401 和一个小的 html 正文,消息以开头
对象移动
在我的网络配置中(有趣的部分)如下:
<system.web>
<customErrors mode="Off" />
<compilation debug="true" targetFramework="4.8" />
<httpRuntime targetFramework="4.8" maxUrlLength="8192" maxQueryStringLength="2048" />
<authentication mode="Windows" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="Bin" />
</hiddenSegments>
</requestFiltering>
</security>
<httpErrors errorMode="Detailed" />
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
<add verb="*" path="*" name="WebDavHandler" type="WebDavHandler" />
</handlers>
<caching enabled="false" enableKernelCache="false" />
</system.webServer>
在公共 void ProcessRequest(HttpContext context) 方法的 WebDavHandler.cs 文件中,我在请求“IsAuthenticated = true”的“上下文”中看到,在 LogonUserIdentity 中我看到它是 NTML 身份验证,我可以看到用户登录名和所有,但 context.Request.Path 已经设置为 Account/Login。
我找不到任何原因,哪个层或设置是这种行为的原因。有人可以帮我在哪里找到根本原因吗?
提前致谢!
解决方案
推荐阅读
- vb.net - EF 查询多次命中数据库
- unity3d - 如何使用统一和增强现实在人的皮肤上蚀刻像纹身一样的图像?
- angular - Angular 6-Activated Route-为什么我无法从路由中提取 ID?
- javascript - How to unparse result after iterating through specific data with papaparse?
- tensorflow - 诗人的 TensorFlow - 运行重新训练脚本时出错(Windows 10)
- c# - C#比较字符串和缩写
- mercurial - 如何从 hg 日志中获取分支名称?
- php - SimpleSAMLphp 设置和 SP 元数据
- javascript - 在 axios 获取请求中未定义的反应状态
- keras - 如何将我自己的数据集转换为 x_train y _train , x_test x_train