zoukankan      html  css  js  c++  java
  • MOSS的权限控制很好很强大的

        出个题目先:
       SPWeb web = SPControl.GetContextWeb(Context); 
       //获取当前站点下的所有子站点
       SPWebCollection subwebs = web.Webs;
      
       foreach(SPWeb wb in subwebs)
       {....}

    END
    当前用户为普通读者身份!!可以看每个子网站下的子网站的子网站。。。
    结果:失败!

     SPSecurity.RunWithElevatedPrivileges(delegate
     {
        SPWeb web = SPControl.GetContextWeb(Context); 
       //获取当前站点下的所有子站点
       SPWebCollection subwebs = web.Webs;
      
       foreach(SPWeb wb in subwebs)
       {....}
     });

    还是失败,失败地点:web.Webs;
    提示:没有权限,验证失败!

    最后修改版本:

     SPSecurity.RunWithElevatedPrivileges(delegate
                    {
                        using (SPWeb wb = new SPSite(web.Site.ID).OpenWeb(web.ID))
                        {
                            //获取当前站点下的所有子站点
                            SPWebCollection subwebcol = wb.Webs;

                            for (int i = 0; i < subwebcol.Count; i++)
                            {
                                if (i < subwebupcount)
                                {
                                    if (subwebcol[i].DoesUserHavePermissions(SPBasePermissions.Open))
                                    {
                                        subleftnav(subwebcol[i], "navLevel2", "navItem", web.ID);
                                        subwebcol[i].Dispose();
                                    }
                                }
                            }
                        }
                    });

    结果:成功!
    总结:必须在提升权限下New一个新的Contex上下文,再去干你想干的事情,如上黑体标示,第二个可以不要的!
    感慨:MOSS的权限控制很弓虽大!
       
  • 相关阅读:
    PHP安全编程:更优的会话数据安全 更好地防范session暴露(转)
    PHP安全编程:会话数据注入 比会话劫持更强大的攻击(转)
    小菜学习设计模式(四)—原型(Prototype)模式
    小菜学习设计模式(三)—工厂方法(Factory Method)模式
    从头学习设计模式(一)——单例模式
    javascript Date format(js日期格式化)
    您尝试打开的文件的格式与文件扩展名指定的格式不一致
    C# foreach 中获取索引index的方法
    C# DateTime日期格式化
    oracle的常用函数 instr() 和substr()函数
  • 原文地址:https://www.cnblogs.com/pccai/p/1224751.html
Copyright © 2011-2022 走看看