【发布时间】:2015-06-05 03:38:01
【问题描述】:
在 Visual Studio 为 Web Api 2 项目的 ASP.NET 身份验证生成的模板项目中,我添加了一个类 ApplicationUserStore(这是我的自定义用户存储)
public class ApplicationUserStore : IUserStore<ApplicationUser>
{
private readonly ApplicationDbContext _context;
public ApplicationUserStore(ApplicationDbContext context)
{
_context = context;
}
public async Task<ApplicationUser> FindByIdAsync(string userName)
{
return await _context.Users.Include(x => x.FMBP_Company).FirstOrDefaultAsync(n => n.UserName == userName);
}
public Task CreateAsync(ApplicationUser user)
{
throw new NotImplementedException();
}
public Task DeleteAsync(ApplicationUser user)
{
throw new NotImplementedException();
}
public Task<ApplicationUser> FindByNameAsync(string userName)
{
return _context.Users.Include(x => x.FMBP_Company).FirstOrDefaultAsync(n => n.UserName == userName);
}
public Task UpdateAsync(ApplicationUser user)
{
throw new NotImplementedException();
}
public void Dispose()
{
throw new NotImplementedException();
}
}
我这样做基本上是因为每当我执行 FindByIdAsync 时我都想要 FMBP_Company 对象。
我什至更改了 IdentiyConfig.cs 并添加了以下行,以便我可以使用我的自定义用户存储。
var manager = new ApplicationUserManager(new ApplicationUserStore(context.Get<ApplicationDbContext>()));
完成此操作后,我在注册时遇到错误。以下是错误。
Store 没有实现 IUserPasswordStore
【问题讨论】:
-
那么您是否更新了
ApplicationUserStore以实现IUserPasswordStore接口?然后你会有public class ApplicationUserStore : IUserStore<ApplicationUser>, IUserPasswordStore<ApplicationUser> -
@BrendanGreen 是的,我现在已经实现了这个接口,但是我不知道在这里实现什么,因为我还不需要自定义密码代码
-
weblogs.asp.net/imranbaloch/… 解决了我的问题
标签: c# asp.net asp.net-web-api2 asp.net-mvc-5.1