我必须为系统创建一个RESTful Web API(我使用的是ASP.NET Core 1.1),就每个使用此系统的客户端都有自己的数据库而言,这可能有点不寻常。(客户就像一家公司,其中有很多用户)。因此,有一个主数据库,它为每个客户端指定其必须连接到的数据库。所有客户端数据库都是相同的(当然数据除外)。
我想知道应该如何处理...通常,当应用程序使用Web API时,您可能会遇到以下情况:
public class AccountsController : Controller
{
private readonly SomeContext _context;
public FilesController(SomeContext context)
{
_context = context;
}
// GET: api/Files
[HttpGet)]
public IEnumerable<Account> GetAccounts()
{
return _context.Accounts;
}
}
现在,在上述示例中,问题在于上下文必须指向不同的数据库,具体取决于哪个客户端正在请求帐户列表。我不确定如何最好地解决这个问题。如果前端通过每个API调用在查询字符串中发送客户端标识符,可以吗?因此,每个控制器操作都将具有一个ClientId参数。并且基于该参数,该操作会在调用它之前动态修改Context的连接字符串?但是,从实现和安全角度来看,这听起来都非常糟糕。问题是,据我所知,ASP.NET是无状态的,因此每次调用API时,API都不知道这是谁?
或者我还能怎么做?
我将从访问令牌中识别用户(并因此识别她希望使用的数据库)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句