2008-10-01 6 views
9

Wie richten Sie eine asp.net sql-Mitgliedschaftsrolle/Mitgliedschaftsanbieter auf einer Produktionsmaschine ein? Ich versuche, BlogEngine.NET und die gesamte Dokumentation einzurichten, um das ASP.NET-Websiteverwaltungstool von Visual Studio zu verwenden, das jedoch nicht auf einer Produktionsmaschine verfügbar ist. Bin ich der erste BlogEngine-Benutzer, der es auf einer Nicht-Entwicklungs-Box verwendet?Wie verwalten Sie asp.net SQL-Mitgliedschaftsrollen/Benutzer in der Produktion?

Der SQL-Server ist komplett von allem außer der Produktionsbox blockiert, ich habe jedoch SQL Management Studio dort.

EDIT: Ich meine, wie fügen Sie neue Benutzer/Rollen, nicht wie Sie die Tabellen erstellen. Ich habe bereits aspnet_regsql ausgeführt, um das Schema zu erstellen.

EDIT2: MyWSAT funktioniert nicht, da es auch einen ersten Benutzer in der Datenbank erfordert. Ich brauche eine Anwendung, die es mir erlaubt, neue Benutzer in der Mitgliedschaftsdatenbank ohne Authentifizierung zu erstellen, nur eine Verbindungszeichenfolge.

Antwort

5

Ich habe dieses Problem gelöst, indem ich beim Start der Anwendung einen Standard-Superbenutzer eingerichtet habe.

Durch das Hinzufügen dieser

 

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

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

Dann in der Sicherheitsklasse gobal.asax:

 

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 

Sobald Sie einen Standardbenutzer haben, können Sie AspNetWSAT oder andere verwenden.

0

Sie müssen .NET 2.0 auf dem Computer installiert haben, das gesamte VS-Tool ist ein GUI-Wrapper für ein Befehlszeilentool, das Teil des Frameworks ist.

prüfen C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 für die App aspnet_regsql.exe

/? für Befehlszeilenschalter,/W für einen Assistentenmodus

+0

sorry, Ich war nicht klarer. Ich habe aspnet_regsql ausgeführt, ich bin in der Lage, die Benutzer und Rollen jetzt hinzufügen. – sontek

4

Lösung 1 (Standard, schlecht): Visual Studio -> Website Menü -> ASP.NET-Konfiguration.

Lösung 2 (preffered): AspNetWSAT (einfach zu implementieren, ziemlich kraftvoll)

+0

WSAT hilft nicht, weil es einen ersten Benutzer in der Datenbank benötigt, bevor Sie etwas tun können, mein Problem ist, dass ich * nein * Benutzer in der Datenbank habe. – sontek

+0

ASP.NET-Konfiguration ermöglicht das Erstellen von Benutzern. –

0

Haben Sie in den IIS-Fähigkeiten sehen Mitgliedschaft zu verwalten? Wechseln Sie zur Registerkarte ASP.NET auf IIS des Produktionsservers, und sehen Sie, ob Ihnen das weiterhilft.

+0

Das hilft Ihnen, die Anbieter zu verwalten, ermöglicht es Ihnen nicht, neue Benutzer zu erstellen. – sontek

1

Die Lösung ist einfach, das WSAT-Tool ist auf dem Produktionsrechner, aber es ist nicht erreichbar, Sie können die Website konfigurieren, und Sie können es verwenden.

Das WSAT-Tool mit Quellcode befindet sich im Ordner C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ ASP.NETWebAdminFiles. Um es im Netzwerk zugänglich zu machen, gehen Sie einfach zu IIS-> Neues virtuelles Verzeichnis erstellen-> Zeigen Sie auf den obigen Ordner und entfernen Sie den anonymen Zugriff von der Seite mit den Verzeichniseinstellungen.

Dann müssen Sie es die gleiche Art und Weise Ihrer lokalen ASP.Net Konfigurationstool dh über eine URL zugegriffen wird, zuzugreifen, die so etwas wie ähnelt: http://SERVER/AdminTool/default.aspx?applicationPhysicalPath=C: \ Inetpub \ wwwrooot \ Testseite \ & applicationUrl =/Testseite

Verwandte Themen