使用 LightSwitch 应用程序管理现有用户和角色






4.67/5 (3投票s)
本文介绍了一个用于从现有数据库管理用户和角色的 LightSwitch 应用程序
引言
本文介绍如何将现有用户数据库与 LightSwitch 应用程序结合使用。我在网上搜索了这个问题的答案,但没有找到我想要的。我找到一个关于将当前应用程序用户链接到另一个表的示例,但没有关于在 LightSwitch 应用程序中使用现有用户数据库的示例。本文将逐步介绍这个过程。
文章目录
- 问答
- 创建用户数据库
- 创建 LightSwitch 应用程序
- 修改 LightSwitch 应用程序以连接到现有用户数据库
问答
您的应用程序/扩展程序做什么?它解决了什么业务问题?
该应用程序用于管理现有数据库中的用户。
此应用程序有多少屏幕和实体?
该应用程序没有任何实体和自定义屏幕。该应用程序使用默认的用户和角色屏幕来展示功能。
LightSwitch 为您的业务节省了资金吗?如何节省?
此应用程序可以通过使用现有的用户数据库来节省资金。无需在新 LightSwitch 应用中重新输入用户。
创建用户数据库
LightSwitch 应用程序使用与所有其他 .NET 应用程序相同的安全数据库表。由于我没有现有的用户数据库,我将在其中创建一个。
众所周知,要将 aspnet_*
数据库表和存储过程添加到现有数据库,我们可以使用 aspnet_regsql.exe 工具。使用 SQL Server Management Studio 创建数据库后,我们可以运行以下命令来添加我们的表。

在上图所示,您可以看到我们将成员资格、角色和配置文件表添加到 LSTestDB
数据库。这些是 LightSwitch 应用程序使用的表。运行此命令后,我们的数据库中就有了指定的表。如下图所示。

LightSwitch 使用一个附加表。该表名为 RolePermissions
,用于保存分配给角色的所有权限。下图展示了表结构。

我们无需将此表添加到我们的数据库。权限将保留在 LightSwitch 应用程序数据库中(该数据库使用 _IntrinsicData
连接字符串)。
此时,数据库已准备就绪。
创建 LightSwitch 应用程序
下一步是创建 LightSwitch 应用程序。为此,我们只需按照新建项目向导操作即可。项目打开后,我们需要设置应用程序使用窗体身份验证。这可以在“属性”窗口的“访问控制”选项卡中完成。如下图所示。

从上图可以看出,我授予了调试的安全管理权限。这将允许我们访问 UI 中的相应屏幕。我们现在可以运行应用程序,看看是否一切正常。下图展示了该应用程序。

请记住不要添加任何用户,因为这会将用户添加到 LightSwitch 数据库。
修改 LightSwitch 应用程序以连接到现有用户数据库
现在是激动人心的部分。我们将修改一些 LightSwitch 生成的文件以连接到我们的用户数据库。特别是,我们将修改生成的 web.config 文件。该文件可以在 ServerGenerated
项目中找到。这是我们创建应用程序项目时生成的项目之一。要访问 web.config 文件,我们需要从 **逻辑视图** 切换到 **文件视图**,如下图所示。

然后我们需要单击 **显示所有文件** 并从 ServerGenerated
项目中打开 web.config 文件。
在此文件中,我们可以看到一些有趣的内容。
- 已添加一个指向默认数据源的连接字符串,其名称为
_IntrinsicData
。 - 成员资格、角色和配置文件提供程序已设置,并使用
_IntrinsicData
连接字符串。
为了使应用程序使用我们的用户数据库,我们需要执行两项操作:
- 添加一个指向我们用户数据库的新连接字符串。
- 使提供程序使用我们的连接字符串而不是
_IntrinsicData
。
我们将把以下连接字符串添加到 web.config 文件中。
<add name="myDB" connectionString="Data Source=.\sqlexpress;
Initial Catalog=LSTestDB;Integrated Security=True;
Connect Timeout=30;MultipleActiveResultSets=True" />
此连接字符串与生成的连接字符串非常相似,只是未设置 User Instance
属性。现在剩下要做的就是将提供程序指向使用我们的连接字符串。如果用户已存在于数据库中,我们还需要将提供程序中的 applicationName
设置为我们要从中访问用户的应用程序。
就是这样。我们要开始测试工作的第一件事是添加一些随机权限,如下图所示。

在此之后,我们可以启动应用程序并添加一个测试用户和角色。如下图所示。我们的自定义权限也已添加到角色中。
我们要做的最后一件事是检查我们的数据库,看看数据是否已添加。下图展示了结果。

从上图可以看出,用户和角色确实被添加了。
就是这样。希望您喜欢这篇文章。如果您有时间或有其他解决方案,请随时发表评论。