C#以编程方式创建ASP.NET成员模式
我想知道动态安装成员模式的最佳方式是什么 现在我想到的解决方案是以某种方式运行C#以编程方式创建ASP.NET成员模式,c#,asp.net-membership,C#,Asp.net Membership,我想知道动态安装成员模式的最佳方式是什么 现在我想到的解决方案是以某种方式运行aspnet\u regsql.exe,并在我的数据库连接上执行参数 我怎样才能做到这一点?有更好的方法吗?是这样做的: public static void Initialize() { var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["membership"].ConnectionSt
aspnet\u regsql.exe
,并在我的数据库连接上执行参数
我怎样才能做到这一点?有更好的方法吗?是这样做的:
public static void Initialize()
{
var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["membership"].ConnectionString);
if (!MembershipExists(connection))
{
// create schema
string regsql = Path.Combine(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(), "aspnet_regsql.exe");
string args = string.Format(@"-E -S {0} -A all -d {1}", connection.DataSource, connection.Database);
var proc = Process.Start(regsql, args);
if (proc != null)
proc.WaitForExit();
}
}
public static bool MembershipExists(SqlConnection connection)
{
try
{
connection.Open();
var query = new SqlCommand("select count(*) from sysobjects where name = 'aspnet_CheckSchemaVersion' and type = 'P'", connection);
return query.ExecuteScalar() as int? == 1;
}
finally
{
connection.Close();
}
}
不确定它在生产环境中的行为。好的,我找到了一个更好的方法来实现这一点,我仍然使用
MembershipExists()
函数,但我用这个语句安装它,直到几分钟前我才知道这一点
SqlServices.Install(database, SqlFeatures.All, connectionString);