2008-10-01 10 views
9

¿Cómo se configura un proveedor de membresía/función de membresía asp.net sql en una máquina de producción? Estoy intentando configurar BlogEngine.NET y toda la documentación dice que debe usar la herramienta de administración de sitios web ASP.NET de Visual Studio, pero eso no está disponible en una máquina de producción. ¿Soy el primer usuario de BlogEngine en usarlo en una caja sin desarrollo?¿Cómo maneja los roles/usuarios de membresía de asp.net SQL en producción?

El servidor SQL está completamente bloqueado de todo excepto del cuadro de producción, aunque tengo SQL Management Studio allí.

EDITAR: Quiero decir, cómo se agregan nuevos usuarios/roles, no cómo se crean las tablas. Ya ejecuté aspnet_regsql para crear el esquema.

EDIT2: MyWSAT no funciona porque también requiere un usuario inicial en la base de datos. Necesito una aplicación que me permita crear nuevos usuarios en la base de datos de miembros sin ninguna autenticación, solo una cadena de conexión.

Respuesta

5

He resuelto este problema al configurar un superusuario predeterminado en el inicio de la aplicación.

Al añadir este a 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(); 
    } 
 

Luego, en la clase de seguridad:

 

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 

Una vez que tenga un usuario por defecto, puede utilizar AspNetWSAT u otro.

0

Deberá tener instalado .NET 2.0 en la máquina, toda la herramienta VS es una interfaz gráfica de usuario para una herramienta de línea de comandos que forma parte del marco.

Comprobar C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 para la aplicación aspnet_regsql.exe

/? para los interruptores de línea de comandos,/W para un modo de asistente

+0

lo siento, No estaba más claro. He ejecutado aspnet_regsql, estoy buscando poder agregar los usuarios y las funciones ahora. – sontek

4

Solución 1 (estándar, deficiente): Visual Studio -> Menú del sitio web -> Configuración de ASP.NET.

Solución 2 (preffered): AspNetWSAT (fácil de implementar, bastante potente)

+0

WSAT no ayuda porque necesita un usuario inicial en la base de datos antes de que pueda hacer algo, mi problema es que tengo * no * usuarios en la base de datos. – sontek

+0

La configuración de ASP.NET permite crear usuarios. –

0

¿Has mirado en las capacidades de IIS para administrar la pertenencia? Vaya a la pestaña ASP.NET en IIS del servidor de producción y vea si esto puede ayudarlo.

+0

Eso le ayuda a administrar los proveedores, no le permite crear nuevos usuarios. – sontek

1

La solución es simple, la herramienta WSAT está en la máquina de producción, pero es inalcanzable, puede configurar el sitio , y puede usarlo.

La herramienta WSAT con código fuente se encuentra en su carpeta C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ ASP.NETWebAdminFiles. Para que sea accesible en la red, todo lo que tiene que hacer es ir a IIS-> Crear nuevo directorio virtual-> Apunte a la carpeta de arriba y elimine el acceso anónimo de la página de configuración del directorio.

Luego hay que acceder a él de la misma manera se accede a su herramienta de configuración ASP.Net local, es decir, a través de una dirección URL que se asemeja a algo como: http://SERVER/AdminTool/default.aspx?applicationPhysicalPath=C: \ Inetpub \ wwwrooot \ testsite \ & applicationUrl =/testsite

Cuestiones relacionadas