当前位置:  开发笔记 > 后端 > 正文

在带有WCF的App.config中使用Windows角色身份验证

如何解决《在带有WCF的App.config中使用Windows角色身份验证》经验,为你挑选了1个好方法。

我正在使用WCF服务和net.tcp端点,其serviceAuthentication的主要PermissionMode设置为UseWindowsGroups.

目前在服务的实现中,我使用PrincipalPermission属性来设置每个方法的角色要求.

        [PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
        [OperationBehavior(Impersonation = ImpersonationOption.Required)]
        public string method1()

我尝试做的几乎完全相同,除了在app.config中设置角色的配置.有没有办法做到这一点,仍然使用Windows组身份验证?

谢谢



1> Enrico Campi..:

如果您在IIS中托管WCF服务,它将在ASP.NET辅助进程中运行,这意味着您可以像对ASMX Web服务一样配置身份验证和授权:


    
    
        
        
    

然后,您必须禁用对IIS中端点的匿名访问,而是启用 Windows集成身份验证.
在IIS管理控制台中,您可以通过打开虚拟目录的" 属性 "对话框来执行此操作.然后,您将在" 目录安全性 "选项卡中找到安全设置.

当然,唯一可用的通信渠道是HTTP.客户端必须在传输级别的请求中使用以下设置提供其Windows身份:


    
        
            
                
                    
                
            
        
    
    
        
     

请注意,如果您的服务端点使用wsHttpBinding,那么您还必须将SSL添加到端点,因为这是WCF在您使用传输级安全性时强制执行的要求.
如果您改为使用basicHttpBinding,则可以使用WCF中可用的安全性较低的身份验证模式,称为TransportCredentialOnly,不再需要SSL.

有关详细信息,这里是WCF安全基础结构的一个很好的概述.


请注意,如果要执行此操作,则需要在web.config文件中启用ASP.NET兼容模式.否则它将无法工作(也不会抛出错误).
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有