使用基本身份验证保护特定文件夹/路径(Web服务)

本文关键字:路径 Web 服务 文件夹 身份验证 保护 | 更新日期: 2023-09-27 18:02:44

所以我有这个c#/ASP。运行在特定URL (www.someurl.com)上的。NET 4.5 web应用程序。该应用程序在本地工作,并使用Visual Studio的"发布Web应用程序"功能部署到测试和生产服务器(Windows 2012 R2和IIS 8.5)。一切都好极了。在生产服务器上,应用SSL,因此应用程序在HTTPS上运行。

现在,一个新的Web服务已经被添加到Web应用程序中,并被放置在上述Web应用程序的(子)文件夹中,就像其他已经运行的Web服务一样。通常我会使用OAUTH(2)或类似的方法来保护web服务。然而,由于编程的限制,消费web服务的客户端请求进行基本身份验证以确保安全性。

我怎么也想不出怎么让它运行起来。我在服务器上创建了一个新的用户帐户,在IIS中启用了基本身份验证,在web服务所在的文件夹上使用"转换为应用程序",当我去www.someurl.com/folder/to/some/webservice.asmx时,它确实要求我的凭据。但是,ASMX文件(由于web应用程序被发布到此服务器上,因此它是一个标记文件)将被视为非功能标记文件并返回服务器错误(The page must have a <%@ webservice class="MyNamespace.MyClass" ... %> directive.)

我做错了什么?

使用基本身份验证保护特定文件夹/路径(Web服务)

对于任何遇到同样问题的人:我在我的主Web中使用<location>标签得到了我想要的。配置文件,不考虑在文件夹级别转换为IIS中的应用程序:

<location path="folder/to/some/webservice">
    <system.web>
        <authorization>
            <allow users="?"/>
        </authorization>
    </system.web>
</location>