首页 文章

Identity DefaultConnection数据库到SQL Server

提问于
浏览
0

我使用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();
    }
}

2 回答

  • 0

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

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

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

  • 1

    也许我不太了解您的需求,但通常身份表应与您的其他表位于同一数据库中,与您的特定问题相关 . 也许您还希望用户/身份与您的“业务”表之间存在某种关系 .

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

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

    希望这会有所帮助,汤姆

相关问题