ASP.NET MVC 和 WCF 服务安全 - 身份验证、路由

Posted

技术标签:

【中文标题】ASP.NET MVC 和 WCF 服务安全 - 身份验证、路由【英文标题】:ASP.NET MVC and WCF Service Security - Authentication, Routing 【发布时间】:2011-11-10 18:59:44 【问题描述】:

我在 ASP.NET MVC Web 应用程序中托管 WCF 服务。我希望 WCF 服务只能由经过身份验证的用户访问。将下面的配置代码添加到 web.config 文件中并没有得到想要的结果:

<location path="Services/MyService.svc">
    <system.web>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
</location>

我应该如何拒绝未经身份验证的用户访问此服务?

【问题讨论】:

在非 ASP.NET MVC 项目中进行测试具有相同的结果。正如我之前假设的那样,这可能不是由 MVC 引起的。 我可能错了,但我认为 Asp.Net 的角色系统不会为 WCF 请求执行 - 我认为您可能必须使用 WCF 安全性(哦,真有趣) 【参考方案1】:

我能够通过在“~/Services”目录本身而不是网站根目录中的 Web.Config 添加包含授权规则的 Web.Config 文件来解决此问题。

~/Services/Web.Config

<system.web>
    <authorization>
        <deny users="?"/>
    </authorization>
</system.web>

【讨论】:

以上是关于ASP.NET MVC 和 WCF 服务安全 - 身份验证、路由的主要内容,如果未能解决你的问题,请参考以下文章

表单身份验证、ASP.NET MVC 和 WCF RESTful 服务

带有 asp.net mvc 应用程序的 WCF 服务

在 .NET 中开发新的 RESTful Web 服务——我应该从哪里开始? ASP.NET-MVC,WCF?

是否有理由在 asp.net MVC 上使用 WCF?

如何在 ASP.Net MVC 应用程序中使用来自 WCF 身份验证服务的身份验证 cookie

选择哪一个:ASP.NET MVC 还是 RESTful WCF?