Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用实体框架动态设置连接字符串时的Silverlight安全问题_Silverlight_Security_Entity Framework_Wcf Ria Services - Fatal编程技术网

使用实体框架动态设置连接字符串时的Silverlight安全问题

使用实体框架动态设置连接字符串时的Silverlight安全问题,silverlight,security,entity-framework,wcf-ria-services,Silverlight,Security,Entity Framework,Wcf Ria Services,我使用实体框架,在许多数据库和服务器上使用相同的模型。我想根据登录用户在运行时设置连接字符串。我目前正在覆盖DomainService中的CreateObjectContext,并在其中设置连接字符串。这很有效,但我担心缺乏安全性。例如,在我的DomainService中,我有一个名为SetConnectionString的调用方法,每当我需要一个新实体时,我都会传入连接字符串。这是从DomainContext客户端完成的。因为我使用的是SQL集成安全性,所以我担心有人可能会操纵clinet上的

我使用实体框架,在许多数据库和服务器上使用相同的模型。我想根据登录用户在运行时设置连接字符串。我目前正在覆盖DomainService中的CreateObjectContext,并在其中设置连接字符串。这很有效,但我担心缺乏安全性。例如,在我的DomainService中,我有一个名为SetConnectionString的调用方法,每当我需要一个新实体时,我都会传入连接字符串。这是从DomainContext客户端完成的。因为我使用的是SQL集成安全性,所以我担心有人可能会操纵clinet上的连接字符串并访问他们无权使用的数据库

动态设置要在运行时使用的域实体的连接字符串的最安全方法是什么

我确实在数据库中有数据库名和服务器设置,如果我输入了我的项目id或其他信息,我可以从DomainService中查找这些设置,但我马上又回到了同一个问题——有人很容易伪造这些信息

想法


-Scott

希望我的答案与flash开发人员面临的安全问题相关

使这一点真正安全的唯一方法是从客户端代码建立数据库连接,即使每个用户只能以只读方式访问数据库中的数据

正如您所意识到的,无法阻止用户监视/修改您发送回服务器的数据。即使您对通信进行了加密,用户仍然可以访问代码,而在flash的情况下,由于琐碎的反编译,用户仍然可以访问源代码

我不是DB开发人员,但我对您经常询问的内容进行安全审计,因此以下建议可能是错误的,但我只是在谷歌上搜索了一下,似乎您可以使用视图将用户的凭据集限制为特定信息

如果不是,本文似乎与您想要的内容相关:


使用ASP.NET成员资格框架怎么样?将用户登录与框架中的登录调用绑定,以确保用户是授权用户。向域服务中要保护的每个函数添加RequireAuthentication属性

以下是有关在Silverlight中使用ASP.NET成员身份的详细信息: