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

时间:2016-08-16 10:01:06

标签: c# asp.net web-services iis basic-authentication

所以我有一个在特定URL(www.someurl.com)上运行的C#/ ASP.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.

我做错了什么?

1 个答案:

答案 0 :(得分:0)

对于遇到同一问题的任何人:我在主Web.Config文件中使用<location>标记得到了我想要的内容,忽略了在文件夹级别转换为IIS中的应用程序:

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