C# 使用connectionstring将数据添加到标识默认数据库

C# 使用connectionstring将数据添加到标识默认数据库,c#,asp.net,database,entity-framework,asp.net-identity,C#,Asp.net,Database,Entity Framework,Asp.net Identity,我目前正在从事一个学习项目,在那里我使用forms auth和sql数据库。但今天我更新到使用猥亵。 我现在的问题是,我的站点存储的不仅仅是用户信息,我希望这些信息与身份数据存储在同一个数据库中。 当我使用成员资格时,这没有问题,我只是添加了一个connectionstring并编写了一条SQL语句。但现在我似乎需要添加一个名为DbContext的东西? 也许看我的代码更容易理解,这是我的旧代码,用于旧SQL数据库: using (SqlConnection con = new SqlConne

我目前正在从事一个学习项目,在那里我使用forms auth和sql数据库。但今天我更新到使用猥亵。 我现在的问题是,我的站点存储的不仅仅是用户信息,我希望这些信息与身份数据存储在同一个数据库中。 当我使用成员资格时,这没有问题,我只是添加了一个connectionstring并编写了一条SQL语句。但现在我似乎需要添加一个名为DbContext的东西? 也许看我的代码更容易理解,这是我的旧代码,用于旧SQL数据库:

using (SqlConnection con = new SqlConnection(strCon))
                {
                    using (SqlCommand cmd = con.CreateCommand())
                    {
                        cmd.CommandText = "INSERT INTO Website (url, rating, categoryId, subCategoryId, description1, description2) values (@url, @rating, @categoryId, @subCategoryId, @desc1, @desc2)";
                        cmd.Parameters.AddWithValue("@url", url);
                        cmd.Parameters.AddWithValue("@rating", rating);
                        cmd.Parameters.AddWithValue("@categoryId", categoryId);
                        cmd.Parameters.AddWithValue("@desc1", desc1);
                        cmd.Parameters.AddWithValue("@desc2", desc2);
                        if (DPLSubCategory.Items != null)
                        {
                            Int32 subCategoryId = Convert.ToInt32(DPLSubCategory.SelectedItem.Value);
                            cmd.Parameters.AddWithValue("@subCategoryId", subCategoryId);
                        }

                        con.Open();

                        cmd.ExecuteNonQuery();
                    }
                    con.Close();
                }
现在假设我在本地身份数据库中添加一个“网站”表。我如何做类似于上面代码的事情?现在我正在使用默认连接字符串:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\WDBAPP.mdf;Initial Catalog=WDBAPP;Integrated Security=True" providerName="System.Data.SqlClient"/>

我加上这样的成员:

// Default UserStore constructor uses the default connection string named: DefaultConnection
            var userStore = new UserStore<IdentityUser>();
            var manager = new UserManager<IdentityUser>(userStore);
            var user = new IdentityUser() { UserName = UserName.Text };

            IdentityResult result = manager.Create(user, Password.Text);

            if (result.Succeeded)
            {
                var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
                var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
                authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity);
                Response.Redirect("~/Login.aspx");
            }
//默认UserStore构造函数使用名为DefaultConnection的默认连接字符串
var userStore=new userStore();
var-manager=新的UserManager(userStore);
var user=new IdentityUser(){UserName=UserName.Text};
IdentityResult result=manager.Create(user、Password.Text);
if(result.successed)
{
var authenticationManager=HttpContext.Current.GetOwinContext().Authentication;
var userIdentity=manager.CreateIdentity(用户,DefaultAuthenticationTypes.ApplicationOkie);
SignIn(新的AuthenticationProperties(){},userIdentity);
重定向(“~/Login.aspx”);
}
正如您所看到的,我不需要指向我的数据库,因为我使用默认的connectionstring

那么,如何将我的connectionstring更改为,例如,“MyConString”,并使其与注册码一起工作?我希望能够从代码中指向我的数据库,这样我就可以添加任何我想要的内容

Web表单没有我可以找到的applicationdbcontext类 和修改,我不知道如何创建一个

VS 2013中的默认Web表单模板具有ApplicationDbContext

如果您是ASP.Net Identity的新手,您希望在手动运行自己的UserManager之前先使用VS创建的默认模板,因为很多事情很容易出错

如果要在现有数据库中保留ASP.Net标识,则需要将其重命名为与现有连接字符串相同的名称


您已经用Entity Framework标记了您的问题,我建议您阅读一下,然后做一两个教程。这可能比回答这个问题更有帮助。我找到的所有教程可能都是针对MVC的。我使用web表单。Web表单没有可以查找和修改的applicationdbcontext类,我不知道如何创建它。如果我错了,请纠正我@wini我也尝试过在asp.net论坛上获得帮助。我不同意你@Win的说法,这是一个重复的问题,这个问题和我的问题不一样,甚至没有那么接近。也许我只是错过了一些明显的东西,只是塞住了它太复杂了,以至于“过时”版本只用了一行代码。谢谢你花时间回答。我没有使用模板,这就是为什么我没有找到这个。在我的空项目中手动创建它可以吗?另外,如何使用c#添加自定义数据?我想也许我对EF太生疏了。我试着找一本关于web表单的教程。我只是想像上面那样把东西添加到我的网站表中,但是使用EF。你可以阅读亚当·弗里曼写的一篇文章。即使如此,ASP.Net身份也是一个非常深刻的话题。如果您是ASP.Net Identity的新手,您希望在手动运行自己的UserManager之前先使用VS创建的默认模板进行测试,因为很多事情很容易出错。谢谢。我想我现在就回去用form auth。没有时间学习一个全新的主题atm。如果您不需要额外的功能,FormAuthentication可能是一个不错的选择。这就是一个例子。