我在 Web 服务器上设置了 WCF 服务。该服务在被访问时会执行一些数据库操作。此 WCF 服务应该使用什么类型的帐户(角色和权限)与数据库进行交互,以及如何创建相同的帐户。网络服务是实现这一目标的方法吗?
该服务将由大量用户访问,这些用户将受到不同程度的限制。我应该如何以最安全、最稳健的方式实现这一点?
提前致谢。
最佳答案
嗯,这取决于很多因素。
您必须首先至少回答以下两个问题:
- 谁负责身份验证:您的事件目录(对 AD 有效的用户)、数据库(SQL Server 用户),还是您使用自定义身份验证系统(数据库中的
User
表)? - 谁负责授权:您的 Active Directory(用户组)、数据库(SQL Server 角色),还是您使用自定义身份验证系统(
Role
、UserRole
) > 表格)?
当您回答这些问题时,这些问题与您想要管理安全性的方式相关(而不是如何使用 WCF 实际实现这一点),然后您可以找到一个使用WCF的方式。
更具体地说,您必须选择用于身份验证的 WCF 安全配置:
消息与传输安全
Windows
(非常适合将您的应用程序集成到 AD 中)用户名
(登录名+密码)- ...等等
然后是基于角色的授权提供程序(如果有):
SqlRoleProvider
(SQL Server 角色)- Windows 组(适用于 Windows 域)
- 自定义
- 等等
所以你必须先做出一些选择,然后我建议你阅读this MSDN article选择要使用的安全配置,具体取决于您期望如何管理身份验证和授权。
关于c# - WCF:配置角色以访问数据库资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425491/