如何将WCF中的服务访问限制为一组Windows帐户?
发布时间:2020-12-14 01:36:32 所属栏目:Windows 来源:网络整理
导读:我有一个WCF服务,它使用netTcp绑定和传输安全性.它使用 Windows身份验证(默认). 一切顺利,但我想确保只有一个选择的Windows用户帐户可以使用此服务而不是域中的每个人. 有没有办法实现这一点,以便选择用户帐户可以写在配置文件中,服务将使用它们(使用属性排
我有一个WCF服务,它使用netTcp绑定和传输安全性.它使用
Windows身份验证(默认).
一切顺利,但我想确保只有一个选择的Windows用户帐户可以使用此服务而不是域中的每个人. 有没有办法实现这一点,以便选择用户帐户可以写在配置文件中,服务将使用它们(使用属性排除)? 解决方法
您无法在配置中执行此操作 – 但由于您使用的是Windows身份验证,因此可以轻松使用ASP.NET角色提供程序 – 基于Active Directory / Windows域角色成员身份,或基于ASP.NET内置角色/会员数据库.
有了这个,您可以使用声明性语法将调用者限制为某些组: [ServiceContract] interface IMyService { [OperationContract] [PrincipalPermission(SecurityAction.Demand,Role="YourCustomRole")] public string MethodLimitedToGroup(string someInput); } 任何不是您指定的组成员并尝试调用此方法的人都将收到SecurityException – 但没有其他任何内容. 您也可以限制一组特定的实际用户名 – 不建议使用 – 一般来说太复杂,限制太多: [ServiceContract] interface IMyService { [OperationContract] [PrincipalPermission(SecurityAction.Demand,Name="User1")] [PrincipalPermission(SecurityAction.Demand,Name="User2")] public string MethodLimitedToGroup(string someInput); } 您可以在config中定义所有这些: <behaviors> <serviceBehavior> <behavior name="WinAuth"> <serviceAuthorization principalPermissionMode="Windows" /> </behavior> </serviceBehavior> </behaviors> 然后只需在配置中将该服务行为分配给您的服务: <service name="YourService" behaviorConfiguration="WinAuth"> ...... 如果要使用ASP.NET提供的成员资格/角色数据库,请指定 <serviceAuthorization principalPermissionMode="UseAspNetRoles" /> 代替. 渣 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – Win32 API,用于判断给定的二进制文件(EXE或DLL)
- active-directory – 将Active Directory用户转换为本地计算
- .net – Windows运行时中的内存管理
- windows-server-2003 – 在停用原始旧域控制器之前将所有FS
- windows-server-2008 – 什么是“很多”页面错误?
- Windows 2008 R2 开启磁盘清理的方法
- windbg – 为什么sosex!dlk在Windows 7上永远运行?
- 如何退出Microsoft GW-BASIC,IBM BASICA或其他类似的BASIC旧
- 在WPF中使用.NET 2.0(Windows窗体)控件的限制?
- 如何在带有windows的apache上安装mod_pagespeed,以及从哪里
推荐文章
站长推荐
热点阅读