【问题标题】:Custom headers ASP.net MVC自定义标头 ASP.net MVC
【发布时间】:2015-09-24 07:36:59
【问题描述】:

我正在尝试处理 WebDav 请求以创建 CalDav 服务器,以便用户可以在他们选择的任何设备上轻松访问我们的日历功能。

问题在于尝试提供任何自定义标头。我编写了一个自定义的 ActionResult 以正确的方式轻松设置任何结果。在得到识别的 OPTIONS 请求后,它会添加:

response.AppendHeader("Allow", "OPTIONS, PROPFIND, HEAD, GET, REPORT, PROPPATCH, PUT, DELETE, POST");

当我查看最终用户收到的请求时,会出现以下标头:

Allow: OPTIONS, TRACE, GET, HEAD, POST

当我尝试使用自定义标头 PROPFIND 发出请求时,它只会返回 404 错误。我试过谷歌搜索,但关于这些东西的内容并不多。这可能是我必须启用或禁用的东西。

【问题讨论】:

    标签: asp.net-mvc webdav caldav custom-headers


    【解决方案1】:

    https://www.iis.net/configreference/system.webserver/httpprotocol/customheaders

    请参阅“如何”部分。 你可以通过多种方式做到这一点

    • IIS
    • Web.Config
    • 代码:C#、VB.NET、JavaScript

    【讨论】:

    • 感谢您的回复,但这并不是我真正的意思。我编写了一个自定义ActionResult,当任何操作完成时都会返回。在完成带有OPTIONS 标头的请求后,它会返回可能的标头以及一些XML 数据。但我认为 MVC 在操作完成后会覆盖 Allow 标头。
    【解决方案2】:

    我不得不删除 web 配置中的 WebDavModuleWebDav 处理程序。在我完成之后,它就完美地工作了。

    <system.webServer>
      <modules runAllManagedModulesForAllRequests="true">
        <remove name="WebDAVModule" />
      </modules>
      <handlers>
        <remove name="WebDAV" />
      </handlers>
    </system.webServer>
    

    【讨论】:

    • 感谢您分享您的解决方案。最重要的部分是您的操作方法如何与请求客户交谈“webDAV”。您如何处理/满足 webDAV 请求?你能给我一些我需要检查的资源吗?
    猜你喜欢
    • 1970-01-01
    • 2011-09-20
    • 2017-12-14
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    相关资源
    最近更新 更多