您如何在生产中管理asp.net SQL成员角色/用户?

时间:2008-10-01 07:25:19

标签: .net asp.net security asp.net-membership blogengine.net

如何在生产计算机上设置asp.net sql成员角色/成员资格提供程序?我正在尝试设置BlogEngine.NET,并且所有文档都说使用Visual Studio中的ASP.NET网站管理工具,但这在生产机器上不可用。我是第一个在非开发盒上使用它的BlogEngine用户吗?

除了生产框之外,SQL服务器完全被阻止了,但我确实有SQL Management Studio。

编辑:我的意思是,你如何添加新用户/角色,而不是如何创建表。我已经运行了aspnet_regsql来创建架构。

EDIT2:MyWSAT不起作用,因为它也需要数据库中的初始用户。我需要一个应用程序,允许我在成员资格数据库中创建新用户而无需任何身份验证,只需一个连接字符串。

5 个答案:

答案 0 :(得分: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, "maintenance@acorel.com");

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

拥有默认用户后,您可以使用AspNetWSAT或其他。

答案 1 :(得分:4)

解决方案1(标准,差):Visual Studio - >网站菜单 - > ASP.NET配置。

解决方案2(已提供):AspNetWSAT(易于部署,非常强大)

答案 2 :(得分: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 \ testsite \&amp; applicationUrl = / testsite < / p>

答案 3 :(得分:0)

您必须在计算机上安装.NET 2.0,所有VS工具都是命令行工具的GUI包装器,它是框架的一部分。

检查应用程序aspnet_regsql.exe的C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727

/?用于命令行开关,/ W用于向导模式

答案 4 :(得分:0)

您是否看过IIS管理会员资格的功能?转到生产服务器的IIS上的ASP.NET选项卡,看看这是否对您有所帮助。