1

我只是在寻找有关如何实施此功能的反馈:

我的系统中有两种类型的用户需要身份验证,用户和管理员。现在他们将执行的任务和我存储的关于他们的数据保证他们每个人都有一个单独的数据库表来存储他们的信息/身份验证信息。

我已经实现了一个工作CredentialsAuthProvider调用UserCredentialsProvider来验证用户在/auth/credentials. 逻辑检查User数据库中的表并进行身份验证。现在要对管理员进行身份验证,我应该实现第二个CredentialsAuthProvider调用AdminCredentialsAuthProvider并在单独的路由上注册每个,例如/user/auth/credentials/admin/auth/credentials/或在同一路由中实现管理TryAuthenticate逻辑UserCredentialsProvider

如果以上任何一个都是解决方案,我将如何在调用时注册单独的路由或区分管理员/用户TryAuthenticate

任何帮助都会很棒。谢谢你。

4

1 回答 1

1

我会坚持只使用一个端点和一个提供者进行身份验证。这将大大简化身份验证。

在后台,您的身份验证提供者需要检查用户和管理员表。一旦你有了它,我会将用户表和管理表中的所有数据转换为一个组合用户资源。管理员应表示为具有“管理员”角色的用户。这样,您仍然可以利用 ServiceStack 中的内置角色。

换句话说,我会在某种数据访问层下扫除复杂性,以便您的端点保持整洁。

于 2013-03-08T21:47:19.343 回答