gpt4 book ai didi

asp.net - ExtendedMembershipProvider.GetUserIDfromOauth 返回什么用户 ID?

转载 作者:行者123 更新时间:2023-12-02 17:05:37 26 4
gpt4 key购买 nike

我正在尝试自定义我自己的 ExtendedMembershipProvider 实现。我不知道 GetUserIDFromOauth 方法应该做什么?我看到它默认抛出异常,并且它应该从开放身份验证提供程序返回用户 ID。

我不明白这是如何完成的,除非这意味着查找该用户是否存在于系统中?这就是它的目的吗?我发现缺乏文档令人困惑......

谢谢。

最佳答案

GetUserIdFromOAuthExtendedMembershipProvider 类使用的一种方法,用于根据 User.Id 在 Web 应用程序数据库的用户表中查找 User.Id code>ProviderProviderUserId 您从 OAuth 或 OpenId Provider 获取。获取指定用户的 ProviderProviderUserId 数据后,您需要将其保存到数据库中。

它默认返回抛出新的NotImplementedException();。您需要实现此方法以从应用程序数据库返回 User.Id 的整数。

这是一个示例实现:


public override int GetUserIdFromOAuth(string provider, string providerUserId)
{
using (var context = new YourApplicationEntities())
{
// Try to find user with certain Provider and ProviderUserId
var user = context.Users.SingleOrDefault(
q => q.Provider == provider &&
q.ProviderUserId == providerUserId
);

if (user != null)
{
return user.Id;
}
}

return -1;
}

此实现假设您的 User 表中有 ProviderProviderUserId 字段。如果此信息保存在不同的表中,则只需修改 LINQ 即可返回所需的结果。

关于asp.net - ExtendedMembershipProvider.GetUserIDfromOauth 返回什么用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com