WebPart和授权

来源:互联网 发布:我感受到了网络的魅力 编辑:程序博客网 时间:2024/04/30 08:13

默认情况下,所有用户都可以浏览有WebPart的页面,但是要定制一个页面,用户必须经过认证。因此,要改变WebPartManager的DisplayMode,这只能在用户登录后才有可能完成;否则就会出现一个错误。可以采用多种方法避免这一点,如在改变DisplayMode前先使用User.Identity.IsAuthenticated。

对WebPart定制的授权与其他授权的做法是一样的,也是通过修改web.config来完成。例如,考虑代码清单13-5,其中显示了webPart元素,以及personalization和authorization子元素。authorization部分有标准的allow和deny元素,允许选择users和roles来确定当前的授权。指定users和roles时,还需要指定verbs,可以是enterSharedScope或modifyState,或二者兼有。设置为enterSharedScope时,指示一个用户或角色是否可以进入共享作用域(也就是说,个性化信息是否在用户间共享),设置为modifyState时则指示用户或角色是否可以修改个性化信息。在代码清单13-5中,只允许Admin角色的用户修改页面的个性化状态,所有其他用户都没有这个权限。

代码清单13-5  配置WebPart授权

<webParts>

  <personalization>

    <authorization>

      <allow roles="Admin" verbs="modifyState" />

      <deny users="*" verbs="modifyState" />

    </authorization>

  </personalization>

</webParts>

这可以与授权过滤器(Authorization Filter)和定制代码结合使用,指示对于当前用户某个WebPart 是否合法。

原创粉丝点击