gpt4 book ai didi

c# - MVC 5 自定义用户存储

转载 作者:IT王子 更新时间:2023-10-29 04:49:37 25 4
gpt4 key购买 nike

我需要构建一个自定义 UserStore(主要是因为我有一些默认情况下不属于框架的要求)但我无法在任何地方找到有关如何执行此操作的任何文档。

看到两条信息很接近:

  1. http://kazimanzurrashid.com/posts/implementing-user-confirmation-and-password-reset-with-one-asp-dot-net-identity-pain-or-pleasure - 这似乎适用于早期版本 :(
  2. MVC 5 IoC and Authentication - 这与我的要求类似,但我需要查看一些代码 :(

基本上我需要知道如何创建用户以及如何登录。剩下的我可以想办法。我想主要问题是处理密码等。

有谁知道任何可能对我有帮助的文档吗?或者,如果默认 UserStore 出现故障,那么它的内部方法会很棒(我可以从那里进行调整)。

最佳答案

这其实并不难。

创建一个实现 IUserStore 接口(interface)的新类。

public class MyUserStore : IUserStore<User> { }

...然后实现它的方法。我认为有 5 或 6 个可以开始,它们处理创建/更新/删除/查找用户。如果您正在为您的用户实体使用 Entity Framework ,那么只需构造函数将它的一个实例注入(inject)您的用户存储实例。

public class MyUserStore : IUserStore<User>
{
private readonly MyDbContext _dbContext;
public MyUserStore(MyDbContext dbContext) { _dbContext = dbContext; }
}

然后,在接口(interface)方法中,只需委托(delegate)给您的 dbcontext:

Task IUserStore<User>.CreateAsync(User user)
{
_dbContext.Set<User>().Create(user);
return Task.FromResult(0);
}

然后您可以实现许多其他可选接口(interface)来支持其他功能。例如,如果您希望 UserStore 能够为您处理密码加密,请实现 IUserPasswordStore:

public class MyUserStore : IUserStore<User>, IUserPasswordStore<User> { }

... IUserRoleStore 等其他接口(interface)依此类推

可能真正有用的是反编译工具,如 .NET Reflector 或 ReSharper 的“导航到反编译源”功能。如果反编译 Microsoft.AspNet.Identity.EntityFramework 库中的默认 UserStore,您可以看到他们是如何做到的。一些反编译代码可能难以阅读,因为一些方法是异步的,但您应该了解它的要点。

关于c# - MVC 5 自定义用户存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20657487/

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