使用 Identity Server 3 和 AspNet Identity 为项目配置 IUserTokenProvi



我很难理解在我的身份服务器中为我的UserManager配置IUserTokenProvider的正确方法。我的目标是能够重置用户的密码。 首先,我知道我需要配置一个提供程序,例如:

var provider = new DpapiDataProtectionProvider("MyAppName"); 

但我不确定我应该把这段代码放在哪里。它会在我的UserManager构造函数上吗?

这就是我的构造函数现在的样子,但它似乎不正确,否则,我将如何更改验证和创建的目的?

public UserManager(UserStore store)
: base(store)
{
var provider = new DpapiDataProtectionProvider("MyAppName");
UserTokenProvider = new DataProtectorTokenProvider<User>(provider.Create("EmailConfirmation"));
}

最后一个问题,此提供程序是否会自动处理之前成功使用令牌的情况,以防止进一步的恶意请求?

PS:我在它后面使用了EntityFramework。

如果它是一个公共属性,你可以做这样的事情(这是许多标识示例处理它的方式(。

var provider = new DpapiDataProtectionProvider("MyAppName");
var userManager = new UserManager(userStore)
{
UserTokenProvider = new DataProtectorTokenProvider<User>(provider.Create("EmailConfirmation"))
};

至于最后一个问题,如果您使用的是EntityFramework(或任何支持SecurityStamps的实现(,是的,您受到保护。ASP.NET Identity 的 IUserSecurityStampStore接口是什么?是理解安全邮票的良好入门参考。

相关内容

  • 没有找到相关文章

最新更新