我正在努力了解在我的身份服务器中为IUserTokenProvider
配置UserManager
的正确方法。我的目标是能够重置用户的密码。
首先,我了解我需要配置提供程序,例如:
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。
答案 0 :(得分:0)
如果它是公共财产,你可以做这样的事情(这是很多身份例子处理它的方式)。
var provider = new DpapiDataProtectionProvider("MyAppName");
var userManager = new UserManager(userStore)
{
UserTokenProvider = new DataProtectorTokenProvider<User>(provider.Create("EmailConfirmation"))
};
至于最后一个问题,如果您正在使用EntityFramework(或任何支持SecurityStamps的实现),是的,您受到保护。 What is ASP.NET Identity's IUserSecurityStampStore<TUser> interface?是理解SecurityStamps的良好开端参考。