我正在尝试自定义我自己的 ExtendedMembershipProvider 实现。我不知道 GetUserIDFromOauth 方法应该做什么?我看到它默认抛出异常,并且它应该从开放身份验证提供程序返回用户 ID。
我看不到应该如何完成,除非这意味着查找该用户是否存在于系统中?这是它的目的吗?我发现缺乏文档令人困惑......
谢谢。
我正在尝试自定义我自己的 ExtendedMembershipProvider 实现。我不知道 GetUserIDFromOauth 方法应该做什么?我看到它默认抛出异常,并且它应该从开放身份验证提供程序返回用户 ID。
我看不到应该如何完成,除非这意味着查找该用户是否存在于系统中?这是它的目的吗?我发现缺乏文档令人困惑......
谢谢。
GetUserIdFromOAuth
是ExtendedMembershipProvider
类使用的一种方法,用于在您的 Web 应用程序数据库中的用户表中查找基于User.Id
您从 OAuth 或 OpenId 提供程序获得的方法。获取指定用户的数据后,您需要将其保存在数据库中。Provider
ProviderUserId
Provider
ProviderUserId
它throw new 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;
}
此实现假定您的表中有Provider
和ProviderUserId
字段User
。如果此信息保存在不同的表中,您只需修改 LINQ 即可返回所需的结果。