Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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
C# 在本地网络上运行的应用程序中,授权是如何工作的?_C#_.net_Entity Framework - Fatal编程技术网

C# 在本地网络上运行的应用程序中,授权是如何工作的?

C# 在本地网络上运行的应用程序中,授权是如何工作的?,c#,.net,entity-framework,C#,.net,Entity Framework,在Web应用程序中,为了获取数据,我们可以首先请求对用户进行身份验证。身份验证也在web服务器端完成 本地网络应用程序如何,其中不涉及任何服务,并且应用程序直接连接到数据库(位于服务器PC上的数据库)。我将如何做:此表只能由经过身份验证的用户读取,此表只能由所有用户读取,等等?没有身份验证,您无法连接到数据库(mySQl、Oracle、SQLServer) 通常,您会将连接信息存储在配置文件中,但也不能这样做,并要求用户提供自己的凭据 大多数SGBD都允许您配置每个用户的读/写权限。您需要像配置

在Web应用程序中,为了获取数据,我们可以首先请求对用户进行身份验证。身份验证也在web服务器端完成


本地网络应用程序如何,其中不涉及任何服务,并且应用程序直接连接到数据库(位于服务器PC上的数据库)。我将如何做:此表只能由经过身份验证的用户读取,此表只能由所有用户读取,等等?

没有身份验证,您无法连接到数据库(mySQl、Oracle、SQLServer)

通常,您会将连接信息存储在配置文件中,但也不能这样做,并要求用户提供自己的凭据


大多数SGBD都允许您配置每个用户的读/写权限。

您需要像配置Web应用程序一样配置数据库本身的权限。通常情况下,您会授予一个用户web应用程序在足够的权限下运行,以执行数据库中的所有操作,如果是桌面客户端,则向单个用户授予适当的权限


请注意,这种设计暴露了比正常情况下可以使用的更多的DB访问权限。

如果我正确理解您的问题 如果网络上的所有用户都属于该域,请使用windows身份验证,以便您的连接字符串如下所示:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
否则,您必须使用用户身份验证:

 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; 
这些都是针对sql server完成的:

其他人请检查。

希望它有帮助

我不能依赖域,因为我需要允许不同的用户登录同一个windows帐户。因此,如果我理解正确,如果应用程序用户/角色将由客户端本身定义,这是否意味着Db administrator需要为数据库创建完全相同的用户?当我需要授权某个用户时,我将在连接字符串中使用该用户在我的应用程序中输入的用户名和密码?这是正常的身份验证过程吗?让普通用户直接访问您的数据库不是正常的过程:),但如果需要,您可以使用已经实现的SGBD身份验证服务。在这种情况下,必须在SGBD层创建用户。请注意,这可以使用SQL查询自动完成。是的,您将在连接字符串中使用用户凭据。用户对SGBD上管理员定义的数据库的访问权限有限。这与linux上的用户系统完全相同。正常与否取决于您的安全问题。Db admin需要为您的角色创建足够的用户,如何将用户映射到角色(即直接使用名称/密码,或使用映射用户->连接字符串)是您的选择。请注意,存储带有嵌入密码的连接字符串存在安全风险,而且您似乎需要为“未经身份验证的用户”提供一个连接字符串…顺便说一句,如果您使用的是SQLServer,那么如果我没记错的话,您可以使用所谓的WindowsAuthentication将windows用户映射到SGBD用户。我认为mySQL与linux用户有类似的特性。但不是100%确定。我看不出未经身份验证的用户将如何访问数据库。这难道不是大多数SGBD都禁止的吗?嗨,阿列克谢,既然你的回答和lcfseth的回答一样,你能阅读我在他的回答上发表的评论吗,所以我不需要重复同样的问题。