我使用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="data source=den1.mssql1.gear.host;initial catalog=databaseName;user id=userName;password=userPassword;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
这是DefaultConnection
数据库上下文..如果我将其更改为带有复制身份表的服务器连接字符串,它会给我&#34; 500,ApplicationUser不属于模型&#34;
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
答案 0 :(得分:1)
在这段视频中找到了我想要的东西..
https://www.youtube.com/watch?v=Y02ccL4-_K4
我基本上需要将ASP.net创建的默认连接字符串更改为指向我自己的数据库。此外,我需要知道如何在我的数据库中创建身份表。视频向我展示了如何做到这些。
答案 1 :(得分:0)
也许我不太了解您的需求,但通常身份表应与您的其他表位于同一数据库中,与您的具体问题相关。也许您还希望用户/身份与您的“业务”之间存在某种关系。表。
如果是这种情况,您可以将默认连接字符串更改为指向与EF连接字符串相同的数据库。这将使您的身份在EF数据库中生成必要的表,之后您可以在edmx中导入这些表。
这将使您的EF模型与您的身份模型具有相同的实体。
希望这有帮助, 汤姆