如何在隐藏“IdentityUser”的同时向业务层公开“UserManager”?

2023-12-01

我不想引用 EntityFramework 因此Identity.EntityFramework以其IdentityUser在我的域中。但我想用UserManager of Identity.Core它使用IUserStore<TUser> where TUser : IUser<string>。因此我需要揭露这一点IUserStore隐藏时ApplicationUser因为它源自IdentityUser.

在我的数据访问层中:

public class ApplicationUser : IdentityUser, IApplicationUser { }

// somewhere for IoC container:
var userStore = new UserStore<ApplicationUser>();
// The following breaks with error CS0266: 
//     Cannot implicitly convert type 'UserStore<ApplicationUser>' to 'IUserStore<IApplicationUser>'
IUserStore<IApplicationUser> userStore = userStore;  // does not work
var um = new UserManager<IApplicationUser>(userStore);

在我的域层中:

public interface IApplicationUser : IUser<string> {}

// desired behavior somewhere in domain/web:
var myUserManager = iocContainer.Resolve<UserManager<IApplicationUser>();

此代码不能作为 TUser 使用IUserStore<TUser>不是变体(协方差)。


它需要我写一个适配器Microsoft.AspNet.Identity.Framework.UserStore继承自IUserStore因此可以与UserManager。它将我的自定义用户对象映射到 IdentityUser。其要点可以在以下位置找到:https://gist.github.com/w1ld/b9228f5a27c54b061f90#file-userstoreadapter-cs希望它能帮助别人!

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

如何在隐藏“IdentityUser”的同时向业务层公开“UserManager”? 的相关文章

随机推荐

  • 为什么 Java 允许将字符串文字分配给 String 对象?

    String是java中的一个类 在声明和分配字符串时 正确的说法是字符串名称 Paul 虽然要从 java 类实例化对象 但我们这样做字符串名称 new String 以名字作为对象 我想知道为什么我们可以将一系列字符 Paul 分配给该
  • OpenID 用户验证如何工作?

    嗯 我正在尝试实现 Steam OpenID 登录到网站 但我不太确定它是如何完成的以及 Steam 如何验证使用 OpenID 登录的用户 至于现在我发现的是 steam 只返回用户 ID 没有返回任何其他内容 因此对于其余的事情 我必须
  • PyQT - 设置 QTabWidget 的文本颜色

    有没有办法设置 QTabWidget 中某个选项卡的文本颜色 QTabBar似乎有一种设置选项卡文本颜色的方法 但我没有看到类似的方法QTabWidget 选项卡文本颜色可以通过选项卡小部件设置tabBar method tabwidget
  • 计算和操作文本文件中的出现次数 (Perl)

    我有一个制表符分隔的文本文件 就像 1J L 0 5 1J P 0 4 1J K 0 2 1J L 0 3 1B K 0 7 1B L 0 2 1B P 0 3 1B L 0 6 1B L 0 3 我想操纵它以获得以下信息 对于第一列中的每
  • 如何使用 PHP 删除包含内容的文件夹[重复]

    这个问题在这里已经有答案了 我需要使用 PHP 删除包含内容的文件夹 rmdir and unlink 删除空文件夹 但无法删除有内容的文件夹 此功能将允许您删除任何文件夹 只要它是可写的 及其文件和子目录 function Delete
  • 实体框架代码优先:使用属性进行自定义映射?

    In 斯科特 古的文章 他使用 OnModelCreating 方法来定义模式映射 我想知道实体框架是否有一些现有功能允许我们通过属性进行映射 例如 Dinner那篇文章中提到的类可能是这样的 MapTable tblDinner publ
  • 如果数据元素的顺序不同,空手道比赛失败

    我正在尝试验证一个 Xml 响应 其中一个父元素具有多个具有相同标签但文本内容不同的子元素 如下所示 Scenario test Given def expectation
  • 自定义 .NET 序列化似乎不起作用

    我在用BinaryFormatter序列化类的对象集合A存储在一个System Collections Generic List
  • WP8 如何创建基页并使用它

    我用谷歌搜索过 但没有得到任何有用的资源 所以我决定询问 问题 我有一个Windows Phone 8 C XAML NET 4 5 应用程序 这将有几页 15 50 那是所有这些都将具有相似的外观 设置为 ViewModel 的一个实例的
  • 如何在运行时更改按钮的背景图像?

    我遇到了一个问题 我想在运行时更改按钮的背景图像 我找到了更改颜色的解决方案 但我想更改图像 代码如下 public void buttonCase object sender RoutedEventArgs e Uri uri null
  • 使用自制程序安装 pygame

    我正在尝试使用 Homebrew 安装适用于 Python3 的 pygame 我的机器上同时安装了 Python 2 和 Python 3 I used 这个 Reddit 页面 其中说 brew tap Homebrew python
  • 句柄与 AddHandler

    动态附加 分离事件处理程序有优势吗 手动分离处理程序是否有助于确保不存在对已处置对象的引用 我很确定Handles子句只是语法糖并插入一个AddHandler声明到你的构造函数中 我使用此代码进行了测试并禁用了应用程序框架 因此构造函数不会
  • 我应该如何替换新OpenCV中的FeatureDetector功能?

    我已经下载了Java OpenCV的示例代码 几行代码中有FeatureDetectore 编译器表示已弃用的方法 FeatureDetector detector FeatureDetector create FeatureDetecto
  • OSM数据解析以获取具有子节点的节点

    我下载了一个小区域的开放街道地图数据 我想过滤数据以获取具有特殊类别的节点 这是 OSM 数据的示例
  • 针对位于系统其他位置的存储库运行“git status”

    我知道我可以这样做 git git dir Z www proj web test sample repo cloned git status 但是 问题是该命令是从运行的proj文件夹 这意味着之前位于的所有文件sample repo c
  • Android 中的嵌套 Firestore 异步侦听器

    因此 我在几天的集合中有活动文档 我需要将所有活动合并到一个列表中 我认为我应该循环集合 然后循环活动 最后得到下面的代码 我不知道这是否是组合多个集合的最佳方法 更糟糕的是 我不知道我的列表何时准备好用于所有异步调用 有什么建议吗 谢谢
  • 在 for 中声明结构?

    Apple LLVM 9 1 0 与 clang 902 0 39 2 使用 std c11 接受 typedef struct int i float f S for S s 0 0 s i lt 25 s i s f i 10 f 但拒
  • 日期时间插入然后选择:序列不包含元素

    我在sql server中的表结构是 TableId int Pk identity Data string DateNTime DateTime 我的方法是 public int insertData string data Date D
  • 列出模型剃须刀视图

    我有一个应用程序 asp net mvc 在控制器中我有这个 public ActionResult Index Upload Models ClientModels model1 new Models ClientModels Array
  • 如何在隐藏“IdentityUser”的同时向业务层公开“UserManager”?

    我不想引用 EntityFramework 因此Identity EntityFramework以其IdentityUser在我的域中 但我想用UserManager of Identity Core它使用IUserStore