AspNet Identity 2.0 电子邮件和用户名重复

2023-11-23

我当前的 Asp.Net MVC 5 项目任务电子邮件地址 for UserName。现在我想要upgradeASPNet Identity v1.0 至v2.0利用其所有新功能(see here).

然而,ASPNet Identity v2.0 添加了Email作为一个单独的列Users表并添加相应的属性身份用户 class.

我不想重复UserName进入这个新的Email柱子。我怎么能够mapIdentityUser 的此电子邮件属性要使用现有的用户名列和属性吗?是否有可能ignore这个电子邮件属性并跳过在用户表中添加列?有人尝试过这个吗?

请分享。

Update

这就是 Identity 2.0 的限制。我们不能忽略 Email 属性或将其保留为 Null。某些身份验证功能将无法使用。 :(


您可以尝试以下其中一项:

  1. 尝试通过覆盖来忽略它Email您的财产User类并取消映射或使用 Fluent API。

    public class ApplicationUser : IdentityUser
    {
      // ....
    
      [NotMapped]
      public override string Email { get; set; }
    }
    

    or

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<ApplicationUser>().Ignore(u => u.Email);
    }
    
  2. 当您注册用户时,只需确保您填写Email和你的UserName

    public async Task<ActionResult> Register(RegisterViewModel model)
    {
        if (ModelState.IsValid)
        {
            var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
            // ...
        }
    }
    

当然,你也可以随时忽略Email列,如果您不打算使用它,因为它允许 NULL,所以它只会位于您的AspNetUsers表中包含一堆 NULL,这不是最好的方法,但请记住,忽略它可能会丢失 ASP.NET Identity 2 可能提供的您可能想要使用的新功能。

NOTE不过我不确定选项 1 是否有效Email属性,因为它可能在新的身份代码中到处使用。不过值得一试。我知道如果您不需要其他列,这就是您可以删除它们的方法。我个人碰巧使用新的Email属性/列所以我还没有尝试过。

不确定它是否对您有帮助,但我想我会分享它以防万一。

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

AspNet Identity 2.0 电子邮件和用户名重复 的相关文章

  • MVC 中的 Blazor:组件被渲染,但 @onclick 不起作用。连接问题

    我正在尝试在 net core 3 MVC 项目中使用 Blazor 我使用了一些教程来做到这一点 例如https fizzylogic nl 2019 08 18 integrating blazor in an existing asp
  • 在 ASP.NET MVC 中使用 MySQL 的 AccountController

    在 Visual Studio 中创建默认的 ASP NET MVC 项目会设置一个可以在其中注册用户的基本项目 我将如何继续更改它以使用 MySQL 服务器而不是 SQLServer 现在可以使用了 安装最新的 Connector NET
  • 如何检查 MVC cshtml 页面中的调试模式

    如何检查 MVC cshtml 页面中的调试模式 此代码在 cshtml 页面中不起作用 bool isRelease false if DEBUG isRelease false else isRelease true endif if
  • 具有多个 Angular 2 应用程序的 ASP.Net Core MVC [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试为一个我知道会变得越来越复杂的项目准备结构 我想使用 ASP Net Core MVC 进行顶层导航 我想在每个主视图中放置
  • 数据库优先方法和修改数据库模式

    我正在使用数据库优先方法使用实体框架 DbContext 构建 ASP NET MVC Web 应用程序 如果在某些情况下我需要修改数据库 例如添加新表或修改现有表 添加列或更改列数据类型 我应该 删除现有实体 edmx 和 tt 文件夹并
  • 同一数据库的多个实体框架

    我们可以在项目中为同一个数据库创建多个实体框架吗 我想为每个子系统创建实体框架 一些子系统具有共享表 这是可能的 您可以根据需要创建多个 EDMX 文件 但不建议这样做 因为 您不能查询不同模型中的多个表 定义边界将非常困难 因为大多数表都
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • MVC ASP.NET 或 Razor

    我对 MVC 很陌生 我对 Silver light WPF 和 MVVM 有相当多的了解 但对 MVC 知之甚少 我正在按照 Microsoft 网站上的主要教程进行操作http www asp net mvc tutorials get
  • 重定向到其他控制器中的操作

    我想从一个控制器中的操作重定向到第二个控制器中的操作 通常我会使用 RedirectToAction actionName controllerName objects 我想要重定向到的方法有两个重载 一个用于 HttpVerbs Get
  • LINQ to Entities 无法识别“Int32 IndexOf(System.String, System.StringComparison)”方法

    我已经使用 Entityframework 执行了 linq 查询 如下所示 GroupMaster getGroup null getGroup DataContext Groups FirstOrDefault item gt keyw
  • ASP.NET MVC3 IIS7.5:Cache-Control maxage 始终为 0(不利于客户端缓存)

    我正在使用 Fiddler 测试我的网站 并注意到网络服务器总是返回 Cache Control private s maxage 0 用于动态内容 MVC 操作 这可以防止页面在客户端缓存 不知道是MVC还是IIS的问题 我该如何修复它
  • 如何检查DBContext是否已释放?

    我想与从外部 继承类 调用的另一个方法共享数据库上下文 而不创建新的上下文 除非正在释放它 我想检查上下文是否已处理 以便我可以创建新的上下文 这是休息 api 有多个实体的批量上传 我想共享事务 因此如果一个实体失败 它将不会提交到数据库
  • 如何直接在 Razor 中从 ASP.NET Identity 获取 UserId() 方法

    我的某些部分的自定义授权存在此问题Views 我不想穿上PartialView 而不是我使用If声明如下 if item CurrentComment Id Guid Parse ViewBag UserId repository IsUs
  • 如何构造控制器来对多个条件进行排序 asp.net mvc

    设置控制器按许多 可能为空 标准排序的最佳方法是什么 举例来说 我正在建立一个销售汽车的网站 我的 CarController 有一个函数 Index 它将汽车的 IList 返回到视图 并且每辆车的详细信息都用部分视图呈现 构建这个结构的
  • 如何在单击按钮时重新绑定 igGrid igniteUI 控件中的数据?

    我在 ASP NET MVC3 应用程序中使用 Infragistics Ignite UI 控件 我有一个已绑定到 客户 数据的网格 工作正常 现在我有按钮了 单击后我会进行 ajax 调用 在控制器中 我编写了仅选择 客户 数据的一部分
  • 谁能发现为什么我在测试 EF 5 beta 时不断遇到此错误

    安装了 Visual Studio 11 Beta 因为想要测试 EF 5 Beta 但一直遇到此错误 未找到方法 Void System Data Objects ObjectContextOptions set UseConsisten
  • 实体框架未正确修改或删除子项

    我正在尝试保存Firm包含地址和网站的对象 我开发了在 Angular 7 中使用反应式表单在 UI 中添加和删除地址控件的功能 Firm对象 它正在为地址和网站创建附加条目 而不是将其视为现有记录 因此 如果我从 UI 中删除网站和地址
  • 实体框架:在运行时更改连接字符串

    假设有一个 ASP NET MVC 应用程序使用 Entity Framework 6 和代码优先方法以及 StructureMap 作为 IoC 它还使用工作单元模式 域类 public class Product public int
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c

随机推荐