保护 ADO.NET 数据服务的最佳方式是什么?有没有人在生产中使用过这个,如果是的话,你使用了哪些安全选项?
3 回答
这是一篇博文,深入解释了如何保护 ADO .NET 数据服务。
@tbreffni 发表了一篇不错的博客文章。除了在您的 ado.net 数据服务中设置实体访问规则以控制如何为底层实体数据模型中的不同实体提供访问权限。
假设您的代码如下:
public class Northwind : DataService<NorthwindEntities>
{
public static void InitializeService(IDataServiceConfiguration
config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
}
}
SetEntitySetAccessRule 方法允许您引用整个实体模型或仅引用特定实体集,然后根据 EntitySetRights 枚举定义权限。枚举中包含以下值:
无 拒绝访问数据的所有权利。
ReadSingle 读取单个数据项的授权。
ReadMultiple 读取数据集的授权。
WriteAppend授权在数据集中创建新的数据项。
WriteReplace 授权替换数据。
WriteDelete从数据集中删除数据项的授权。
WriteMerge 授权合并数据。
AllRead授权读取数据。
AllWrite 授权写入数据。
所有创建、读取、更新和删除数据的授权。
使用 Microsoft ADO.NET 服务的演练在这里介绍了此过程。EntitySetRights 枚举在此处记录。
您是指安全的单个查询类型还是整个服务?如果是整个服务,那么您可以使用标准的 IIS 保护方法,例如 Windows 身份验证。在受控的 Windows 环境中,Web 服务正在使用这些服务,您可以设置一个域 ID 作为框之间的授权用户。当然,使用 SSL 是为了保护数据加密。