如何为LightSwitch HTML移动客户端分配用户角色和权限

[原文发表地址] How to Assign Users, Roles and Permissions to a LightSwitch HTML Mobile Client

[原文发表时间] 2013-06-25 01:47 PM

最近,我收到了一些关于如何为LightSwitch HTML的移动应用程序分配用户权限的问题,因此,我觉得有必要发帖对该问题进行快速说明。简单来说,就是你需要部署一个桌面客户端,为你的应用程序进行安全管理。通常一个管理控制台也管理其他类型的在你的应用程序中可能使用到的全局数据,比如查找表和其他参考数据,而且可以被一个或几个系统管理员使用。不过,如果你只需要访问用户和角色界面去授予用户对系统进行访问的权限,那么其步骤就很简单了。

我们来举个例子。我有一个简单的HTML客户端应用程序,并且在项目属性的“访问控制”选项卡上,我已经启用了“Forms Authentication”。

我已经加入代码来执行业务规则和控制应用程序功能的访问权限检查。如果你不熟悉如何做到这些,请阅读:LightSwitch Authentication and Authorization. 其基本要点是,在中间层,你通过数据设计器在你的数据服务中使用访问控制钩(_CanInsert,_CanDelete_CanRead等)进行权限检查。如果你还需要访问HTML客户端上的用户权限,以启用或禁用UI元素,那么请查阅我的另一篇帖子:Using LightSwitch ServerApplicationContext and WebAPI to Get User Permissions.

为了添加一个桌面客户端(我们的管理控制台),右键单击该项目,然后选择“添加客户端”。

给它一个名字,然后单击“确定”。

现在,您的解决方案将包含一个桌面客户端。 (注:一旦你添加了它,桌面客户端将被设置为启动调试客户端。此时,右键单击HTMLClient,并且选择“设置为启动客户端”,这样就可以切换回非调试客户端。)

事实上,你并不需要添加任何的桌面客户端界面。当任何获取了SecurityAdministration许可的用户登录时,用户和角色管理界面就会出现。为了首先得到数据库管理员权限,你需要部署你的应用程序,而对于你的桌面客户端,首先你得考虑到以下几个选项。

右键单击桌面客户端,选择“属性”。这将打开客户特定的属性,在这里你可以指定一个标志,图标,主题等。你还可以 更改屏幕导航。在客户端类型选项卡中,你可以选择将桌面客户端部署为浏览器内的或浏览器外的类型。LightSwitch中的桌面客户端是一个Silverlight5客户端,所以它将可以运行在各种桌面浏览器中(请参阅这里的系统要求)。

默认情况下,当你添加一个桌面客户端到LightSwitch应用程序,客户端类型将被设置为Web应用程序。如果你仅仅是管理数据,这是一个很好的选择。如果你需要通过COM(即Excel、Word、eye scanners等)在Windows桌面上实现其他程序或设备的自动化,那么,你应该会选择“桌面”选项。此选项将仅在Windows机器上运行,但它以较高的信任级别运行,所以你可以跟其他程序进行通信。

对于这个简单的管理控制台,我们将其设置为浏览器类型。现在,在“解决方案资源管理器”中右键单击 LightSwitch 应用程序,选择“发布”。发布向导需要的关键信息是“安全设置”选项卡上的应用程序管理员信息部分。

对于部署的更多信息,请参阅:How to: Deploy a 3-tier Application

一旦我们部署了应用程序,导航到桌面应用程序并提供与您在发布向导中所指定的相同的凭据。此时该应用程序有两个客户,所以记得要浏览正确的虚拟目录来运行相关的客户端应用程序。

例如,我们的桌面客户端的名称是“DesktopClient”,要运行这个,我们就得导航到https://www.mydomain.com/DesktopClient,而如果要运行

移动客户端名为“HTMLClient”的应用程序则需要导航到https://www.mydomain.com/HTMLClient

当你打开桌面客户端并登录,你就会在“管理”菜单下看到用户和角色界面。

一旦管理员设置了角色和用户,这些用户就可以在他们的移动设备上浏览到HTML客户端,然后登录。

愿你喜欢!