2008-10-01 84 views
9

如何在生產機器上設置一個asp.net sql成員資格角色/成員資格提供程序?我正在嘗試設置BlogEngine.NET,並且所有文檔都聲稱使用Visual Studio中的ASP.NET網站管理工具,但這在生產計算機上不可用。我是第一個在非開發框中使用它的BlogEngine用戶嗎?如何管理生產中的asp.net SQL成員資格角色/用戶?

SQL服務器與生產環境中的所有東西完全隔離,但我確實有SQL Management Studio。

編輯:我的意思是,你如何添加新的用戶/角色,而不是如何創建表。我已經運行了aspnet_regsql來創建模式。

編輯2:MyWSAT不起作用,因爲它還需要數據庫中的初始用戶。我需要一個應用程序,它允許我在沒有任何身份驗證的情況下在會員數據庫中創建新用戶,只需一個連接字符串。

回答

5

我通過在應用程序啓動時設置默認超級用戶來解決此問題。

通過添加這gobal.asax

 

    void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 

     // check that the minimal security settings are created 
     Security.SetupSecurity(); 
    } 
 

然後在安全類:

 

using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 

/// 
/// Creates minimum roles and user for application access. 
/// 
public class Security 
{ 
    // application roles 
    public static string[] applicationRoles = 
     { "Roles1", "Roles2", "Roles3", "Roles4", "Roles5" }; 
    // super user 
    private static string superUser = "super"; 
    // default password, should be changed on first connection 
    private static string superUserPassword = "default"; 

    private Security() 
    { 
     // 
     // TODO: Add constructor logic here 
     // 
    } 

    /// 
    /// Creates minimal membership environment. 
    /// 
    public static void SetupSecurity() 
    { 
     SetupRoles(); 
     SetupSuperuser(); 
    } 

    /// 
    /// Checks roles, creates missing. 
    /// 
    public static void SetupRoles() 
    { 
     // create roles 
     for (int i = 0; i 
    /// Checks if superuser account is created. 
    /// Creates the account and assigns it to all roles. 
    /// 
    public static void SetupSuperuser() 
    { 
     // create super user 
     MembershipUser user = Membership.GetUser(superUser); 
     if (user == null) 
      Membership.CreateUser(superUser, superUserPassword, "[email protected]"); 

     // assign superuser to roles 
     for (int i = 0; i 

一旦你有一個默認的用戶,可以使用AspNetWSAT或其他。

0

您必須在機器上安裝.NET 2.0,所有VS工具都是作爲框架一部分的命令行工具的GUI包裝。

檢查C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727的應用程序aspnet_regsql.exe的

/?對於命令行開關,/ W爲嚮導模式

+0

抱歉,我不是更清楚。我已經運行了aspnet_regsql,我希望能夠現在添加用戶和角色。 – sontek 2008-10-01 07:35:58

4

解決方案1(標準,差):Visual Studio - >網站菜單 - > ASP.NET配置。

方案2(參訪):AspNetWSAT(易於部署,非常強大)

+0

WSAT並沒有幫助,因爲它需要數據庫中的初始用戶才能做任何事情,我的問題是我有* no *數據庫中的用戶。 – sontek 2008-10-01 15:14:27

+0

ASP.NET配置允許創建用戶。 – 2008-10-01 17:09:28

0

你是否看了IIS功能來管理會員?轉到生產服務器的IIS上的ASP.NET選項卡,看看這可以幫助你。

1

解決方案很簡單,WSAT工具在生產機器上,但無法訪問,您可以配置站點 ,並且您可以使用它。

帶源代碼的WSAT工具位於C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ ASP.NETWebAdminFiles文件夾中。爲了使其在網絡上可訪問,您只需轉到IIS->創建新的虛擬目錄 - >指向上述文件夾並從目錄設置頁面中刪除匿名訪問。

然後,你需要訪問你的本地ASP.Net配置工具,通過它類似於像一個URL,即訪問方式相同:http://SERVER/AdminTool/default.aspx?applicationPhysicalPath=C:\的Inetpub \ wwwrooot \測試網站\ & applicationUrl = /測試網站

相關問題