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

瘦欲@ 提交于 2019-11-30 03:35:03

问题


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.


回答1:


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, "maintenance@acorel.com");

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

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




回答2:


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

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




回答3:


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




回答4:


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




回答5:


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.



来源:https://stackoverflow.com/questions/156563/how-do-you-manage-asp-net-sql-membership-roles-users-in-production

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!