zoukankan      html  css  js  c++  java
  • "关于2007权限问题的测试报告"的测试报告

      关于2007权限问题的测试报告  来自Erucy的文章,老早就有项目涉及到这个问题,怎么个问题呢,简单描述下.
          自己写的ASP.NET app 放到_layouts路径下,想借用MOSS强大的功能,但又不能完全去控制她只好这么做了,在自己的APP中收集些信息,调用MOSS OBJECT去创建一个指定站点集下的自站点,用做一个工作平台,同时把选择的人员信息根据事先定义的组和权限加到这个刚刚创建的站点中去,也就是说,先创建SITE,再是GROUP,再是ROLES,再是?跟Erucy说的一样,摸了好多时候啊,那个继承关系必须得去掉,否则我的多个自己创建的站点都使用部分相同的组,那还要代码创建啊,干脆手动创建还省事,快,节能!
             web.Group[i].Add() 跟web.SiteGroup[i].Add()有啥区别,我要的是前面的,也就是说每个自己用代码创建的组其它的站点是看不到的,MOSS怎么搞的,用的时候提示我先做第二个,那是啥主意塞.不是我想要的,否则大家又在一个GROUP里面转,不好!有待调查,解决中了....

     1/// <summary>
     2        /// 根据指定的组新建用户
     3        /// </summary>
     4        /// <param name="web"></param>
     5        /// <param name="loginname">登录名:Domin\\Name形式</param>
     6        /// <param name="groupname">组名称</param>
     7        /// <param name="email">Email</param>
     8        /// <param name="cnname">中文名</param>
     9        /// <param name="notes">用户说明</param>
    10        /// <returns>bool</returns>

    11        public bool AddUserToGroup(SPWeb web, string loginname, string groupname, string email, string cnname, string notes)
    12        {
    13            try
    14            {
    15                if (!IsExistUser(web, loginname, groupname))
    16                {
    17                    web.SiteGroups[groupname].AddUser(loginname, email, cnname, notes);//新建用户
    18                    return true;
    19                }

    20                return false;
    21            }

    22            catch (Exception)
    23            {
    24
    25                throw;
    26            }

    27        }

    28        /// <summary>
    29        /// 组权限分配与定义(New)
    30        /// </summary>
    31        /// <param name="web"></param>
    32        /// <param name="groupname"></param>
    33        /// <param name="roles"></param>
    34        /// <returns></returns>

    35        public bool AddGroupToRoles(SPWeb web, string groupname, string[] roles)
    36        {
    37            try
    38            {
    39                string[] _roles = roles;
    40                int rolemun = _roles.Length;
    41
    42                if (IsExistGroup(web, groupname))
    43                {
    44                    //改变站点继承权
    45                    if (!web.HasUniqueRoleDefinitions)
    46                    {
    47                        web.RoleDefinitions.BreakInheritance(truetrue);//复制父站点角色定义并且保持权限
    48                    }

    49
    50                    //站点继承权改变后重新设置状态
    51                    web.AllowUnsafeUpdates = true;
    52
    53                    //组权限分配与定义(New)
    54                    SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions;
    55                    SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;
    56                    SPMember memCrossSiteGroup = web.SiteGroups[groupname];
    57                    SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;
    58                    SPRoleAssignment myroles = new SPRoleAssignment(myssp);
    59                    SPRoleDefinitionBindingCollection roleDefBindings = myroles.RoleDefinitionBindings;
    60                    if (rolemun > 0)
    61                    {
    62                        for (int i = 0; i < rolemun; i++)
    63                        {
    64                            roleDefBindings.Add(roleDefinitions[_roles[i]]);
    65                        }

    66                    }

    67                    roleAssignments.Add(myroles);
    68                    return true;
    69                }

    70                return false;
    71            }

    72            catch (Exception)
    73            {
    74
    75                throw;
    76            }

    77        }

    78
    79


    example而已了...
    msn: pccai1983@hotmail.com
  • 相关阅读:
    【读书笔记】《思考,快与慢》
    【2020-12-09】别人看不上的,正是绝佳机会
    员工的重要性
    二叉树的堂兄弟节点
    占位
    数组中重复的数字
    从上到下打印二叉树
    Python生成exe
    二叉搜索树节点最小距离
    第N个斐波那契数
  • 原文地址:https://www.cnblogs.com/pccai/p/619185.html
Copyright © 2011-2022 走看看