【发布时间】:2015-01-28 02:03:11
【问题描述】:
我已经在基于 ServiceStack 的 Web 服务应用程序中使用了自定义身份验证提供程序。
我正在重写 Authenticate 方法,并针对多个后端租户数据库之一验证我的用户。我目前通过将 API 密钥与数据库字符串匹配来确定租户数据库。
public override object Authenticate(
IServiceBase authService,
IAuthSession session,
Auth request) // <- custom object here, MyCustomAuth request
{
// ...
}
当每个应用程序都用于单个租户(租户/客户可以构建自己的应用程序并使用该 API 密钥)时,此方法有效。展望未来,我想构建一个多租户移动应用程序。因此无法使用 API 密钥方法,因为我不能期望每个用户都输入它,因此我无法确定哪个租户正在使用该应用程序。
我想更改 Auth 对象,以便可以包含 TenantId(由用户在登录时提供)。但是,我看不到如何自定义该对象。
是否可以自定义该 Auth 对象,还是我必须找到替代解决方案?
【问题讨论】:
标签: authentication servicestack