How do you manage asp.net SQL membership roles/users in production?
Asked Answered
N

5

9

How do you setup an asp.net sql membership role/membership provider on a production machine? I'm trying to setup BlogEngine.NET and all the documentation says to use the ASP.NET Website Administration tool from Visual Studio but that isn't available on a production machine. Am I the first BlogEngine user to use it on a non-development box?

The SQL server is completely blocked off from everything but the production box, I do have SQL Management Studio on there though.

EDIT: I mean, how do you add new users/roles, not how do you create the tables. I've already ran aspnet_regsql to create the schema.

EDIT2: MyWSAT doesn't work because it requires an initial user in the database as well. I need an application that will allow me to create new users in the membership database without any authentication, just a connection string.

Nipissing answered 1/10, 2008 at 7:25 Comment(0)
S
5

I solved this problem by setting up a default super user at application start up.

By adding this to 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();
    }

Then in the security class:


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 

Once you have a default user, you can use AspNetWSAT or other.

Secretary answered 1/10, 2008 at 15:31 Comment(0)
T
4

Solution 1 (standard, poor): Visual Studio -> Website menu -> ASP.NET Configuration.

Solution 2 (preffered): AspNetWSAT (easy to deploy, pretty powerfull)

Tuba answered 1/10, 2008 at 7:55 Comment(2)
WSAT doesn't help because it needs an initial user in the database before you can do anything, my problem is I have no users in the database.Nipissing
ASP.NET Configuration allows to create user.Tuba
A
1

The solution is simple, the WSAT tool is on the production machine, but it's unreachable, you can configure the site , and you can use it.

The WSAT tool with source code is located in your C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFiles folder. To make it accessible on the network, all you have to do is go to IIS–>Create new virtual directory–>Point to the above folder and remove anonymous access from directory settings page.

Then you need to access it the same way your local ASP.Net configuration tool is accessed i.e via a URL which resembles something like :http://SERVER/AdminTool/default.aspx?applicationPhysicalPath=C:\Inetpub\wwwrooot\testsite\&applicationUrl=/testsite

Acherman answered 26/3, 2009 at 15:41 Comment(0)
C
0

You'll have to have .NET 2.0 installed on the machine, all the VS tool is is a GUI wrapper for a command line tool which is part of the framework.

Check C:\Windows\Microsoft.NET\Framework\v2.0.50727 for the app aspnet_regsql.exe

/? for command line switches, /W for a wizard mode

Cirrostratus answered 1/10, 2008 at 7:33 Comment(1)
sorry, I wasn't more clear. I've ran aspnet_regsql, I'm looking to be able to add the users and roles now.Nipissing
C
0

Have you looked at the IIS capabilities to manage membership? Go to the ASP.NET tab on IIS of the production server and see if this may help you.

Classy answered 1/10, 2008 at 15:19 Comment(1)
That helps you manage the providers, doesn't allow you to create new users.Nipissing

© 2022 - 2024 — McMap. All rights reserved.