【问题标题】:Change database based on request origin根据请求来源更改数据库
【发布时间】:2016-03-30 07:08:24
【问题描述】:

我正在开发一个将由多家公司运行的 Web 应用程序。每家公司都有自己的 Web 应用程序实例。每个公司都有自己的数据库(Web 应用程序和数据库将在同一台服务器上运行)。

这些实例中的每一个都应与一个 Web API 应用程序通信,以从其数据库中为该特定公司检索数据。

现在我想知道根据请求来源更改 Web API 应用程序中的数据库连接字符串是否是一个好习惯?还是我忽略了什么?

【问题讨论】:

    标签: c# .net database api asp.net-web-api


    【解决方案1】:

    有些事情需要澄清:

    1. 您如何知道根据请求使用哪个数据库?
    2. 您使用哪种技术进行数据库通信?
    3. 您说要根据请求来源更改 Web API 连接字符串是什么意思?在哪里?

    无论如何,该应用程序非常有趣。您需要有一个连接字符串工厂,它根据您的请求返回连接字符串。您需要决定将连接字符串放在哪里。数据库或一些配置设置?

    或者,您可以考虑使用 ASP.NET 网站托管您的 WebAPI,并为每个租户设置不同的连接字符串。除非您不想与有权访问网站的人共享数据库连接字符串,否则这也可以。

    【讨论】:

    • 感谢您的回答。 (1. 虽然我可以将连接字符串映射到 Web 域地址。(2. 我在 .NET Web API 中使用实体框架。(3. 一旦请求进入 Web API 应用程序,我想检查在哪里请求来自,并根据该知识从数据库中发送检索到与请求来自的地址相对应的正确数据。
    • @Johannes 在您的情况下,我将添加每个网站都应添加到 Web api 请求的标头。标头将映射到适当的连接字符串。这是最可靠的方法。但是您还应该考虑您的数据安全性。如果有人获取其他租户的标头并使用它来破坏您的数据怎么办。你准备好了吗?
    猜你喜欢
    • 2017-06-12
    • 1970-01-01
    • 2016-07-28
    • 2014-10-25
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多