配置ASP.NET应用程序使用两种身份验证方法?

时间:2010-12-20 17:07:32

标签: asp.net iis authentication forms-authentication windows-authentication

我是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上运行

2 个答案:

答案 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>
相关问题