【问题标题】:Identity DefaultConnection database to SQL Server身份 DefaultConnection 数据库到 SQL Server
【发布时间】:2018-03-23 20:30:46
【问题描述】:

我使用 C# Identity 登录/注册用户。一切都在本地工作,但是当我实时发布时,注册/登录不起作用。我相信这是由于连接字符串,因为它指向 LocalDb。我一直在尝试将它放入我的服务器数据库中,但是当我这样做时,我得到 ApplicationUser 不是模型的一部分。我现在只使用 AspNetUser 表。有什么建议吗?

默认连接字符串

<add name="DefaultConnection" 
     connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20171104124939.mdf;Initial Catalog=aspnet-WebApplication1-20171104124939;Integrated Security=True" 
     providerName="System.Data.SqlClient"/>

服务器连接字符串——我使用 gearhost 作为我的服务器提供商。

<add name="connectionStringName" 
     connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=den1.mssql1.gear.host;initial catalog=databaseName;user id=userName;password=userPassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

这是DefaultConnection 数据库上下文。如果我将其更改为具有复制身份表的服务器连接字符串,它会给我“500,ApplicationUser not part of model”

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

【问题讨论】:

  • 为什么您的服务器连接字符串使用 EF 模型?
  • @ErikPhilips 我不确定我是否理解你的问题。但连接字符串是这样生成的,因为我使用 Visual Studio 2015 实体数据模型向导从数据库中使用了 EF 设计器
  • 您的问题非常不清楚。您的 web.config 中的这两个连接字符串还是只有 1 个?因为一个是普通连接字符串,另一个是EF连接,不兼容只切换。
  • 这些都是我的 web.config 中的连接字符串
  • 您可能需要两个连接字符串,一个用于标识,另一个用于 EF 模型。它们可以指向同一个数据库。

标签: c# asp.net-identity ssms


【解决方案1】:

在这个视频中找到了我想要的东西..

https://www.youtube.com/watch?v=Y02ccL4-_K4

我基本上需要将 ASP.net 创建的默认连接字符串更改为指向我自己的数据库。此外,我需要知道如何在我的数据库中创建身份表。该视频向我展示了如何执行这些操作。

【讨论】:

    【解决方案2】:

    也许我不太了解您需要什么,但通常身份表应该与您的其他表在同一个数据库中,与您的具体问题相关。也许您还希望用户/身份与您的“业务”表之间存在一些关系。

    如果是这种情况,您可以更改默认连接字符串以指向与 EF 连接字符串相同的数据库。这将使您的身份在您的 EF 数据库中创建必要的表,之后您可以将这些表导入您的 edmx。

    这将使您的 EF 模型与您的身份模型具有相同的实体。

    希望这会有所帮助, 汤姆

    【讨论】:

      猜你喜欢
      • 2019-09-10
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 2020-12-22
      • 2020-04-27
      相关资源
      最近更新 更多