包含 ASP.Net Identity 2.0 UserManager.Users.ToListAsync 和 UserManager.FindByIdAsync 上的属性

2024-06-18

我正在尝试实现 Asp.Net Identity 2.0。到目前为止,在以下人员的帮助下我做得很好这个博客 http://typecastexception.com/post/2014/06/22/ASPNET-Identity-20-Customizing-Users-and-Roles.aspx。但我走了一条稍微不同的路。我希望某些数据不是 User 对象的一部分,而是新创建的 Customer 对象的一部分。我希望将身份验证和授权数据与我的业务数据分开。

因此,就我而言,我通过添加客户属性来修改 ApplicationUser 类:

    public Customer Customer { get; set; }

Customer 类如下所示:

public class Customer
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Insertion { get; set; }
    public Gender Gender { get; set; }
    public DateTime Birthdate { get; set; }
    ...etc.
    public virtual ApplicationUser User { get; set; }
}

我还在 ApplicationDbContext 中添加了关系:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Customer>()
            .HasRequired(u => u.User);
        base.OnModelCreating(modelBuilder);

    }

因此,现在对注册视图模型和控制器进行一些修改后,我可以注册为用户,并在 AspNetUsers 表中创建用户记录,并在 Customer 表中创建一条引用用户记录的客户记录。到目前为止,一切都很好。

但现在,当我检索用户(例如出于显示目的)时,Customer 属性为空。这是有道理的,因为基础记录未加载。通常我会使用 .include 关键字来加载相关记录。但我不知道在使用 Asp.Net Identity 2.0 附带的默认 UserManager 时如何做到这一点。

有人知道如何实现这一目标吗?


我找到了答案。在回答之前可能需要更多搜索。答案是基于这个答案那么问题 https://stackoverflow.com/questions/26646939/custom-entities-with-asp-net-identity-one-to-many

我添加了一个名为 ApplicationUserStore 的类。

public class ApplicationUserStore : UserStore<ApplicationUser>
{
    public ApplicationUserStore(DbContext context)
        : base(context)
    {
    }

    public override System.Threading.Tasks.Task<ApplicationUser> FindByIdAsync(string userId)
    {

        return Users.Include(u=>u.Customer).Include(u => u.Roles).Include(u => u.Claims).Include(u => u.Logins).FirstOrDefaultAsync(u => u.Id == userId);
    }
}

在此类中,我重写了 FindByIdAsync 以包含客户记录。

然后我在 IdentityConfig.cs 中更改了 Create 方法中的第一行,该方法返回 ApplicationUserManager,以便它传递新创建的 ApplicationUserStore 而不是 UserStore。

var manager = new ApplicationUserManager(new ApplicationUserStore(context.Get<ApplicationDbContext>()));

我可能还必须覆盖其他一些获取方法以包含客户记录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包含 ASP.Net Identity 2.0 UserManager.Users.ToListAsync 和 UserManager.FindByIdAsync 上的属性 的相关文章

  • 有什么方法可以在 ASP.NET MVC Web 应用程序中模拟声明主体吗?

    我有一些ASP NET MVC控制器代码检查用户是否经过身份验证 如果是 则检查用户是否具有特定声明 工作正常 我有一些单元测试 我需要模拟一个IPrincipal 这很容易做到 但我不知道如何检查索赔 我通常会做类似的事情 public
  • 在 ASP.NET Core 中全局重用变量

    我必须强制这些变量在我想使用的每个变量上重用 这让我很困难 我需要创建一个类来定义这些变量并在整个程序中使用它们 我怎样才能做到这一点 string RootFolderName Uplaod string ProductPictureFo
  • 预期在模拟中调用一次,但使用 Moq 时调用次数为 0 次

    我收到错误 在mock上调用一次 但是0次 下面是我的代码结构 public class GenerateAddress IGenerateAddress public GenerateAddress IAddress createAdd
  • 如何使用 CMake 链接多个库

    我有一些与 DCMTK 相关的代码 如果我从命令行使用 g 我可以成功构建并运行它 这是代码 include dcmtk config osconfig h include dcmtk dcmdata dctk h int main Dcm
  • 如何更改控制台中的光标位置?

    我想用Console ReadLine 在上一行中并使其显示如下 HeresomeText gt input Not like HeresomeText gt input 可以做吗 使用 Write 方法而不是 WriteLine 方法 C
  • C++ 访问嵌套类的私有成员

    标题可能有点误导 我有以下问题 我有一棵由叶子和内部节点组成的树 用户应该能够在叶子中存储任何信息and该树有一些方法可以获取一组用户定义的值 并且需要在恒定时间内 未摊销 访问相应的叶子 我提出了以下想法 但它不起作用 因为不幸的是我无法
  • “双免”是什么意思?

    正如标题所暗示的那样 我是 C 语言的新手 并且很快就会有期中考试 我目前正在修改过去的论文 一个反复出现的主题是双重自由问题 我理解就是调用的过程free 在同一个内存位置两次 但我有几个问题我不能 100 确定如何回答 问题1 C中双重
  • dotnet core 创建文件名中不含“CoreFxPipe_”的命名管道

    使用以下命令创建命名管道时命名管道客户端流 or 命名管道服务器流dotnet core 的类中 关联的 管道 看起来实际上是一个套接字 已自动将 CoreFxPipe 添加到文件名的前面 有没有一种非黑客的方法来防止这种行为 我只是希望文
  • llvm clang 编译器上的dynamic_cast失败

    我看到一个奇怪的失败dynamic cast正在返回NULL在 clang 编译器上 但相同的代码可以在 gcc 环境下运行 您能否指出根本原因是什么 之间可能有什么区别dynamic cast关于 llvm 和 gcc 我正在使用两个编译
  • 使用 C# 在 XML 文档中查找特定值的好方法是什么?

    我正在调用 Oracle 公开的 WebService 它接受 ItemID 的输入并向我返回相应的 Item Number 我想获取从响应中包含的 XML 返回的项目编号 XML 看起来像这样
  • 类型违反了继承安全规则:“System.Net.Http.WebRequestHandler”

    我在 MVC 应用程序的 web config 中有以下程序集引用
  • 设置了 OFN_ALLOWMULTISELECT 标志的 GetOpenFileName()

    我正在尝试使用 GetOpenFileName 通用对话框调用来弹出打开对话框并允许用户选择多个文件 我设置了 OFN ALLOWMULTISELECT 标志 并设置了 OFN EXPLORER 因此我得到了 新样式 文件选择框 当我设置
  • 基于 C++ 组件的类

    Hi 我正在使用容器编写一个基于组件的类 但是在考虑了许多不同的方法之后 我找不到真正符合我想要的方法 这是总体思路的一个例子 我已经写的代码 Abstract class Component class Component public
  • 成员函数的Decltype

    class A int f int x int j return 2 decltype f p 给我错误 error decltype cannot resolve address of overloaded function 我不明白为什
  • Web API 2 c# 中的 Google reCaptcha

    我有一个 ASP NET Web API 2 项目 我正在尝试从表单中读取 Google Captcha 我尝试了这段代码 public string Post FoundingRequest model var response Requ
  • 在方法签名中使用 new 关键字通常只是为了可读性吗?

    我读过关于new关键词在方法签名中并看到了下面的例子this https stackoverflow com questions 1014295 c sharp new keyword in method signature发帖了 但还是不
  • 我如何在 WPF 中模仿这种行为?

    我对 WPF 和 C 开发相当陌生 我正在制作这个应用程序 我不知道是否有人熟悉 VOIP App Discord 但他们有一个我非常喜欢的特定行为 并且想尝试使用 WPF 创建类似的风格 当您在 Discord 上添加服务器时 单击一个按
  • 如何在迭代时从地图中删除?

    迭代时如何从地图中删除 喜欢 std map
  • 如何在 C 中将 int 和数组保存在共享内存中?

    我正在尝试编写一个程序 让子进程在 Linux 上相互通信 这些进程都是从同一个程序创建的 因此它们共享代码 我需要它们能够访问两个整数变量以及一个整数数组 我不知道共享内存是如何工作的 我搜索过的每一个资源除了让我困惑之外什么也没做 任何
  • 系统.安全.加密与 PCLCrypto

    我们正在删除系统中的许多共享功能并将其移植到 PCL 库中 我在使用 PCLCrypto 时遇到问题 我正在获取数据库中的一些现有数据 并尝试使用相同的算法对其进行解密 我得到了值 但末尾有 16 个额外字节 这些字节都是垃圾 参见下面的代

随机推荐

  • 将 `new Date ()` 存储在 JSON 对象中

    我有以下字段验证器对象 type date min new Date 我希望我可以存储new Date 作为 JSON 中的表达式 解析时会执行 保存时间戳 type date min new Date getTime 然后你再读一遍 va
  • 向无锁队列添加阻塞函数

    我有一个基于循环缓冲区的无锁多生产者 单消费者队列 到目前为止 它只有非阻塞push back and pop front 来电 现在我想添加这些调用的阻塞版本 但我想尽量减少这对使用非阻塞版本的代码性能的影响 也就是说 它不应该将它们变成
  • 用反射“铸造”

    考虑以下示例代码 class SampleClass public long SomeProperty get set public void SetValue SampleClass instance decimal value valu
  • ABPeoplePickerNavigationController - 在不使用私有方法/属性的情况下删除“取消”按钮?

    我正在使用 ABPeoplePickerNavigationController 它是 UINavigationController 的子类 在我使用它的上下文中 右侧的默认导航栏按钮 取消 没有任何意义 我找不到禁用或隐藏它的方法 并且无
  • 隐藏特定用户的报告

    我做了一个向下钻取报告包含 5子报告 所有这些都使用连接超级链接部分 我希望用户只查看主要内容向下钻取报告 我的意思是第一个标签向下钻取 如果我设置仅执行的许可ROLE USER 该特定报告不起作用 抛出类似错误Access Denied
  • 附加到已经运行的 JVM

    有没有办法附加到已经运行的 JVM 例如 在 JNI 中您可以使用JNI CreateJavaVM创建一个虚拟机并运行一个 jar 并检查它的所有类 但是 如果 jar 已经在运行 我找不到附加到其 JVM 并与其类通信或获取其的方法env
  • Jetty - 找不到 Servlet

    我是 Servlet 新手 想通过使用 Eclipse 的 Jetty 插件来调用一个简单的 Servlet 我可以调用 index html 但是当尝试访问 Servlet 时 我得到 HTTP 错误 404访问 ProjectServl
  • 如何在vb.net中实现事务方式?

    我使用 VB net 200 开发一个连接到 MS Access 数据库的应用程序 我使用 TableAdapter 和 Dataset 连接到 Access DB 文件 我需要实现一个简单的事务方法 提交 回滚 来保存到数据库 有没有一种
  • libstdc++新标准库功能支持表

    是否有一个表格指定新标准 11 和 14 支持previousGNU libstdc 的版本 我找到了这样的表compiler https gcc gnu org projects cxx0x html并为当前的库状态 https gcc
  • 是否可以将一个 CSS 类的优先级设置为高于另一个 CSS 类的优先级?

    假设我有一个 div 它使用两个 css 类 这两个类都使用文本对齐 但一个居中 另一个右对齐 是否可以指定一个类别优先于另一个类别的内容 指定更具体的选择器 例如在其前面添加 ID 前缀或在类前面添加节点名 将其分配在其他班级之后 如果两
  • 在 JBoss EAP 5.1 中为特定 MDB 配置 maxSession 属性

    如何使 MDB 的 maxSession 值可由用户配置 有一个 MDB 侦听来自特定队列的消息 它被定义为注释 ActivationConfigProperty propertyName maxSession propertyValue
  • 如何在 grails 域类中设置默认值

    有没有办法为域类属性设置默认值 我有一堂课叫PayMethod 我想要的地方name属性默认为 Cash 我在创建此表时想要这个默认值 这可以使用约束吗 package abc import util UserUtil import emb
  • 如何得到决策树的ROC曲线?

    我正在努力寻找ROC曲线 and AUROC曲线对于决策树 我的代码是这样的 clf fit x y y score clf fit x y decision function test col pred clf predict proba
  • 如何获得打开另一个活动的按钮?

    我已在活动 XML 文件中添加了一个按钮 但无法用它来打开我的其他活动 有人可以逐步告诉我如何做到这一点吗 A 确保您的其他活动已在清单中声明
  • 检查 Future 是否完成

    在 m3 之前 您可以使用 completer future isComplete 检查未来是否已完成 但这似乎已经消失了 有替代品吗 或者我需要自己保存它 似乎在 CompleterImpl 内部仍然有一个字段 isComplete 但它
  • 由于找不到“setup.py”或“pyproject.toml”,pip 安装失败

    我有一个 sh 脚本行 作为 Jenkinsfile groovy 脚本的一部分 它确实 sh python3 m venv venv sh source venv bin activate withCredentials username
  • OpenCv 与 Android studio 1.3+ 使用新的 gradle - 未定义的参考

    我在使用原生 OpenCv 2 4 11 3 0 0 也可以 和 Android Studio 1 3 以及新的 ndk 支持时遇到问题 所有关于 mk 文件的教程 但我想将它与新的实验性 gradle 一起使用 使用 Kiran 答案An
  • 在mysql中的单个查询中更新多个表

    我有三个查询 我想要一个 这是我的查询 UPDATE tab1 SET a WHERE id 3 UPDATE tab2 SET b WHERE id 9 UPDATE tab3 SET c WHERE id 5 您可以尝试下面的代码 UP
  • 使用jquery和javascript水平滑动div

    我正在尝试在 关于我们 页面中显示我的推荐 我在那里用 3divs水平样式可同时显示 3 个推荐 这里我想做的是我想添加一些滑动效果与查询消失 1st 3divs然后需要加载2nd 3divs与不同的推荐 等等 我做了HTML和CSS 但不
  • 包含 ASP.Net Identity 2.0 UserManager.Users.ToListAsync 和 UserManager.FindByIdAsync 上的属性

    我正在尝试实现 Asp Net Identity 2 0 到目前为止 在以下人员的帮助下我做得很好这个博客 http typecastexception com post 2014 06 22 ASPNET Identity 20 Cust