我是ASP.NET开发的新手,而且我只扩展了一个我没有创建的现有应用程序。
我有一个有效的ASP.NET应用程序,它在所有页面中都使用“Forms身份验证”。我在子文件夹“webservices \ Dummy.asmx”中添加了一个新的web服务。这个web服务工作正常,但因为它应该由无法通过表单进行身份验证的外部应用程序调用,我需要为子文件夹“webservices”启用“集成Windows身份验证(基本身份验证或摘要式身份验证)”。
我尝试在IIS中配置它但它不起作用。 因此,我可以设置不同的身份验证方法,我必须创建文件夹“webservices”作为“应用程序”。但是,如果我这样做,那么我的函数将停止使用错误“无法创建类型'虚拟'。”
是否可以拥有一个Web应用程序和身份验证方法? 如果是,如何在IIS中配置?
或者,如果我只需要一个页面(webservice)使用不同的身份验证,那么最好的方法就是我的应用程序的其余部分。
提前感谢您提供任何信息。
再见
PS:我使用的是Windows 2008 Server,该应用程序在.NET Framwork 2.0上运行
答案 0 :(得分:1)
我尝试在IIS中配置它但是它 不工作。所以我可以设置一个 我有不同的身份验证方法 创建文件夹“webservices”as 一个应用程序”。但如果我这样做的话 我的功能停止了 错误“无法创建类型'虚拟'。”
这是正确的方法。你能解释一下你在这里遇到的问题吗?什么是假的?
混合表单和Windows安全性 ASP.NET http://msdn.microsoft.com/en-us/library/ms972958.aspx
答案 1 :(得分:0)
生活在较大应用程序中的Web服务通常不需要受到保护。如果在您的方案中可以接受,您可以使用标准的web.config结构来允许匿名访问服务,同时仍然保护应用程序的其余部分。
将location
节点添加到主configuration
节点,该节点仅定义Web服务的规则:
<location path="webservices\Dummy.asmx">
<system.web>
<authorization>
<!-- this overrides the parent app protection rules -->
<allow users="*" />
</authorization>
</system.web>
</location>