凌峰创科服务平台

如何使用ASP.NET网站管理工具?

这个工具在不同版本的 ASP.NET 中有不同的形态和名称,但其核心目标是一致的:为开发人员提供一个图形化界面,用于管理网站的核心配置、用户、角色和应用程序设置,而无需手动编辑复杂的配置文件(如 web.config)。

如何使用ASP.NET网站管理工具?-图1
(图片来源网络,侵删)

下面我将按照 .NET Framework 的发展脉络,分别介绍这些工具。


ASP.NET Web Site Administration Tool (WSAT) - 针对 ASP.NET Web Forms (Web Site 项目)

这是最经典、最广为人知的“网站管理工具”,通常简称为 WSAT,它随 .NET Framework 3.5 及更早版本一同发布,主要用于 ASP.NET Web Site 项目类型(不是 Web Application)。

如何启动 WSAT?

有多种方式可以启动它,最常见的是:

  1. 通过 Visual Studio 菜单:

    如何使用ASP.NET网站管理工具?-图2
    (图片来源网络,侵删)
    • 在 Visual Studio 中打开你的 ASP.NET Web Site 项目。
    • 点击顶部菜单栏的 “网站” (Website)
    • 选择 “ASP.NET 配置” (ASP.NET Configuration)
  2. 通过项目属性:

    • 在“解决方案资源管理器”中右键点击你的网站项目。
    • 选择 “属性” (Properties)
    • 在弹出的属性窗口中,切换到 “ASP.NET” 选项卡。
    • 点击 “编辑配置” (Edit Configuration) 按钮。
  3. 通过命令行 (IIS):

    • 如果你使用 IIS 来托管网站,可以在 IIS 管理器中右键点击你的网站或应用程序池。
    • 选择 “管理网站” -> “配置 ASP.NET...”

启动后,会弹出一个独立的浏览器窗口,这就是 WSAT 的界面。

WSAT 的主要功能

WSAT 主要提供四个核心管理页面:

如何使用ASP.NET网站管理工具?-图3
(图片来源网络,侵删)
  1. 主页:

    • 提供到其他三个页面的快速链接。
    • 显示当前应用程序的配置文件路径。
  2. 安全:

    • 用户: 创建、编辑、删除、禁用用户,可以重置用户密码(前提是启用了密码恢复功能)。
    • 角色: 创建、删除角色(如“管理员”、“普通用户”)。
    • 访问规则: 为特定文件夹或整个网站设置基于角色或用户的访问权限,可以设置“管理员”角色可以访问 /Admin 文件夹,而其他用户则被拒绝。
    • 创建用户: 一个集中的用户创建向导。
  3. 应用程序:

    • 调试与跟踪: 启用或禁用应用程序的调试模式和跟踪功能。
    • 常规设置: 配置应用程序的默认语言、是否启用自定义错误、自定义错误页的 URL 等。
    • 身份验证: 设置应用程序的身份验证模式,最常见的是将 “Windows 身份验证” 切换为 “Forms 身份验证”(即基于表单的登录)。
  4. 提供程序:

    • 这是 WSAT 的底层配置核心,它允许你选择使用何种数据源来存储用户、角色、配置等信息。
    • 默认情况下,它会使用 SQL Server Express 创建一个名为 ASPDB 的数据库来存储这些数据。
    • 你也可以将其配置为使用 Access 数据库 或自定义的提供程序。

重要限制和注意事项

  • 仅限开发环境: WSAT 绝对不能用于生产环境,它是一个基于 Windows 身份验证的内部工具,需要将 ASP.NET 账户(如 NETWORK SERVICEIIS_IUSRS)添加到 App_Data 文件夹的读写权限中,在生产环境中这样做是极其危险的。
  • 项目类型限制: 它是为旧的 ASP.NET Web Site 项目设计的,在 ASP.NET Web Application 项目中,这个工具默认不可用(虽然可以通过一些复杂设置来启用,但不推荐)。
  • 配置文件依赖: 它直接修改 web.config 文件,如果你手动修改了 web.config,WSAT 的显示可能会受到影响。
  • 技术栈陈旧: 它是 .NET Framework 时代的技术,在 .NET Core 和 .NET 5+ 中已被弃用。

ASP.NET Web Application Projects - 内置的“管理用户”页面

对于现代的 ASP.NET Web Application 项目(无论是 Web Forms, MVC 还是 Razor Pages),WSAT 已经被集成到了项目模板中,以一种更现代、更易于部署的方式存在。

如何找到和使用?

  1. 创建新项目时勾选:

    • 当你使用 Visual Studio 创建一个新的 ASP.NET Web Application 项目时,会看到一个身份验证选项。
    • 选择 “个人用户账户” (Individual User Accounts),项目会自动为你配置好所有必要的文件,包括一个完整的 AccountControllerIdentity 相关的视图和模型,以及一个默认的登录/注册页面。
  2. 现有项目中的管理:

    • 如果你已经创建了一个项目,可以在“解决方案资源管理器”中找到 Areas/Identity/Pages/Account/Manage 文件夹,这个文件夹包含了管理用户个人信息的所有页面,如“个人资料”、“密码”、“登录日志”等。
    • 管理所有用户: 项目通常会提供一个“管理员”区域,用于管理所有用户,你可以通过 Areas/Identity/Pages/Users 文件夹来找到或创建这些管理页面,这些页面通常使用 ASP.NET Core Identity 框架来驱动。

核心技术与优势

  • ASP.NET Core Identity: 这是现代 .NET 应用程序的推荐身份验证和授权框架,它是一个功能强大的、可扩展的会员系统。
  • Entity Framework Core: Identity 的数据存储通过 EF Core 实现,可以轻松地连接到 SQL Server、SQLite、PostgreSQL 等各种数据库。
  • Razor Pages / MVC: 管理界面是标准的 Web 应用程序页面,而不是一个独立的工具,这意味着它们可以被部署到任何地方,包括生产环境。
  • 高度可定制: 你可以完全自定义用户注册、登录、密码重置等流程的 UI 和逻辑。

.NET Core / .NET 5+ - 推荐的管理方式

在 .NET Core 和更新的 .NET 版本中,ASP.NET Core Identity 是唯一推荐的身份验证和授权方案,WSAT 概念已被完全摒弃。

如何管理用户和角色?

管理方式是 代码优先API 优先 的,主要通过以下几种方式:

  1. 代码管理: 在你的 Startup.cs (或 Program.cs) 中配置 Identity,然后在你的 Controller 或 Razor Page 中使用 UserManagerRoleManager 服务来以编程方式创建用户和角色。

    // 在 Controller 或 Page 的构造函数中注入
    private readonly UserManager<IdentityUser> _userManager;
    private readonly RoleManager<IdentityRole> _roleManager;
    public MyController(UserManager<IdentityUser> userManager, RoleManager<IdentityRole> roleManager)
    {
        _userManager = userManager;
        _roleManager = roleManager;
    }
    public async Task<IActionResult> CreateUser()
    {
        var user = new IdentityUser { UserName = "testuser", Email = "test@example.com" };
        var result = await _userManager.CreateAsync(user, "Password123!");
        if (result.Succeeded)
        {
            // 创建成功
        }
        return View();
    }
  2. 数据库直接管理:

    • 默认情况下,Identity 会使用 EF Core 将用户数据存储在一个名为 AspNetUsers 的数据库表中。
    • 你可以使用 SQL Server Management Studio (SSMS)Visual Studio Server Explorer 或其他数据库工具直接连接到数据库,手动添加、修改或删除用户记录。(注意:直接修改数据库有风险,特别是密码是哈希存储的,直接修改可能无法登录)。
  3. 第三方管理面板:

    • 这是 生产环境中最推荐的方式,社区和商业上有很多优秀的后台管理系统(Admin Panel)模板,它们已经集成了对 Identity 的完整管理功能。
    • 示例:
      • AdminLTE: 一个流行的免费后台模板,你可以很容易地将它与 ASP.NET Core Identity 结合。
      • Radzen Blazor / Syncfusion: 商业 UI 组件库,提供了功能丰富的数据网格和表单,可以快速构建管理界面。
      • 开源项目: 在 GitHub 上搜索 "ASP.NET Core Admin Template",可以找到大量现成的解决方案。

总结与对比

特性 ASP.NET WSAT (Web Forms) ASP.NET Web Application (内置 Identity) .NET Core / .NET 5+ (推荐)
适用项目 ASP.NET Web Site ASP.NET Web Application .NET Core / .NET 5+ Web App
技术核心 Membership, SQL Server Express ASP.NET Identity, EF Core ASP.NET Identity, EF Core
启动方式 Visual Studio 菜单/项目属性 内置于项目模板
分享:
扫描分享到社交APP
上一篇
下一篇