几周前,我发现了OpenID Connect和IdentityServer V3。我运行了一些提供的示例,今天我需要更进一步,但我不知道如何继续:
实际上我们有一个"自制的"身份验证和授权过程,我们希望转向OpenID Connect解决方案。 Identity Server似乎是完美的候选者。
今天我们的用户存储在SQL Server数据库中,理想情况下,我希望能够连接"此表到Identity Server(不涉及此表的架构)。我读到了" MembershipReboot"但它使用自己的数据库。我也听说过制作自定义用户服务但是在示例(CustomUserService)中我找不到任何有用的东西。今天我有点失落,因为我不知道去哪里,我意识到我离目标不远。
我需要帮助
谢谢
答案 0 :(得分:1)
在您提到的Custom User Service Sample中,它包含三种用户服务变体,以显示不同的方法,但您实际上只需要其中一种。
在LocalRegistrationUserService示例中,您会找到以下行:
False
和这些:
public override Task AuthenticateLocalAsync(LocalAuthenticationContext context)
{
var user = Users.SingleOrDefault(x => x.Username == context.UserName && x.Password == context.Password);
/// snip ...
您需要将那些从内存中 public override Task GetProfileDataAsync(ProfileDataRequestContext context)
{
// issue the claims for the user
var user = Users.SingleOrDefault(x => x.Subject == context.Subject.GetSubjectId());
/// snip...
集合中查找值的调用替换为打开与SQL Server连接的内容,然后在那里查找它们。
有关支持的更多方法,请参阅Custom User Service documentation,但这两种方法(Users
,AuthenticateLocalAsync
)以及SQL查找都是您开始使用的所有方法。