簡體   English   中英

C#以編程方式創建ASP.NET成員模式

[英]C# Programmatically create ASP.NET Membership Schema

我想知道什么是動態安裝會員模式的最佳方式。

現在我正在考慮的解決方案是以某種方式運行帶有參數的aspnet_regsql.exe以在我的數據庫連接上執行。

我怎么能做到這一點? 有沒有更好的辦法?

好的,我找到了一個更好的方法來實現這一點,我仍然使用MembershipExists()函數,但我用這個語句安裝它,直到幾分鍾前我才知道。

SqlServices.Install(database, SqlFeatures.All, connectionString);

它是這樣的:

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

不確定它在生產環境中的表現如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM