在LightSwitch中,验证方式分为三种:Windows验证,Form验证,和无验证三种方式,如如果产用前两种验证方式时,就要需要为不同的用户设置不同的权限。

       在LightSwitch中,权限设置方式是简单且灵活的,并且这种权限都细化到了具体的LightSwitch 对象中,这些对象是:数据源,查询,界面,自定义方法
对于数据源,LightSwitch提供了两组方法来控件权限,一组为Delete,Insert,Update,Read,Execute,即对数据源的增删改查,和对数据源的提交(这个对应Entity Framework中的实体集合的SavaChanges方法),另外一组是对实体的All_Execute,Single_Execute,和SingleOrDefault_Execute。
        查询只有一个CanExecute方法来总体限制查询是否执行。
       界面也只有一个CanRun方法来总体限制界面是否启动。
       自定义方法也只有一个CanExecute方法来限制该方法是否执行。
 
        在整体项目属性面板中,有一个Application Control选项卡,这个选项目提供了我们整个项目的验证方式,和权限设置。在“Define permissions or select permissions to use for debugging”添加自定义的权限名称,这里只是一个权限的名字,当然要和你想要设置的要限在意义上对应起来,因为这里的名字,将生成权限类的一个常量,并且这个常量可以在LightSwitch自带的权限管理系统的角色添加权限时显示出来,这样一来,只要在上面LightSwitch的Can***的方法中验证用户有没有这个权限就可以了,代码如下:
    result = this.Application.User.HasPermission(Permissions.实体一权限 );
 

LightSwitch中的权限_第1张图片

       用户是某种角色,角色具有某些权限,用户去操作功能时,触发Can***方法,这个方法验证该用户有没有该方法的权限。