c# - 通过 C# 应用程序访问服务器中的文件

标签 c# database sqlite

我用 c# 和 SQLite 编写了一个应用程序,用于存储一家拥有大约 500 名员工的公司中所有员工的数据。我想将数据库和应用程序放在文件服务器/共享文件夹(MS 服务器)中。然后所有员工的桌面上都会有该应用程序的快捷方式。我想根据用户运行应用程序的权限启用/禁用某些输入字段(文本框)。这样做的最佳做法是什么?

我希望用户只能通过我的应用程序在数据库中读/写(应用程序位于同一个数据库文件夹中)。我不希望用户在没有我的应用程序的情况下访问数据库。如何做到这一点?

最佳答案

I don't want the user to reach the database without my application

如果您的应用程序将通过 Windows 文件共享直接访问 SQLite 数据库,这是不可能的。当然,你可以让它变得不方便,但这不太可能。

真正实现这一目标的唯一方法是引入一些中间件。

这通常是一个服务(可能是 WCF),它监听来自您的客户端应用程序的连接,对其进行身份验证,并管理对底层数据库的所有访问。数据库将存储在仅对服务器可见的位置,而不是通过 Windows 共享对您的用户可见。

此外,SQLite 并不是多用户系统的最佳选择。您可以在这里一石二鸟 - 切换到接受网络客户端连接的 DBMS(MS SQL Server Express 是免费的,MySQL、PostgreSQL 也是常见的免费选择),并构建您的应用程序以直接连接到数据库服务器(也可以像这样使用集成的 Windows 身份验证,因此您可以避免显式登录)。在一个简单的场景中,这可能就足够了,并且无需构建显式服务层。

在更复杂的情况下,在应用程序和数据库之间有一个中间件层仍然有意义 - 这样,您可以更改数据库设计而无需更改应用程序设计并部署到所有客户端计算机 - 而不是,只需更改一个地方的中间件层,您的应用程序就不会知道其中的区别。

关于c# - 通过 C# 应用程序访问服务器中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397956/

相关文章:

PHP 创建 JSON 数组列表(数据来自 MySQL)

javascript - Sencha sqlite 示例

database - 从 PostgreSQL 中的函数创建动态表

ios - 将表添加到现有数据库 IOS sqlite

java - 使用 java 访问 SQLite 数据库

ruby-on-rails - rails 3 : Migrate DB Schema from SQLite to MongoDB

c# - 来自显示名称的枚举值

c# - 数据库删除行

c# - 拆分xml文件并保留父节点信息

javascript - 如何产生 'n'号具有不同名称的文本框的编号。选择的下拉项目的数量?