MOSS点滴积累_1

     刚刚接触MOSS,以前连这个名词都没有听过。现在公司开发用到这个,在一个月的接触中发现它真是一门奈人难味的艺术啊。其中的知识是比较零散的(在我这个菜鸟眼里是这样滴,嘻嘻),遇到问题的时候也是让我疯掉的,不过特别享受找到答案的那份喜悦。学习MOSS是我从事开发以来第一次感到程序是很有趣的。所以要继续下去。

  好了,废话不多讲了。先记下我今天学到的东西。

1、sharepoint 一个有用的方法SPSecurity.RunWithElevatedPrivileges(delegate(){})    

 今天开发的过程中用到在MOSS网站上去访问域控上的用户信息,这个我是利用LDAP协议来实现的其中用的了一个DirectoryEntry这个类(这个类是引自system.directoryseverices这个程序集的。)实例化一个DirectoryEntry的对象后调用其中的主法来实现的,(参考:http://msdn.microsoft.com/zh-cn/library/system.directoryservices.directoryentry_members(VS.80).aspx

实例化事例代码段:

DirectoryEntry bjDE = new DirectoryEntry (“LDAP://hostname");// 当然DirectoryEntry 还有其它的构造函数,我这里只调用了一个参数的构造函数

OK,实例化之后就可以调用其相应方法了,这个参考上面提供的网址。当我把程序入到MOSS网站上的时,会报意外错误,但在我本地开发的机器上没有任何问题包括在虚机上。

  经过一阵的的寻觅和请教发现原来是,放到MOSS上之后,当前登陆用户的权限不足进行这个域控的操作。

解决办法:

把这与的这段代码包在

SPSecurity.RunWithElevatedPrivileges(delegate(){})   中即可。

如:

SPSecurity.RunWithElevatedPrivileges(delegate()

{

 // 此处显示的是要在提升权限的情况下运行的代码。
  // 该代码段在 SHAREPOINT/SYSTEM 帐户下运行。

})  ;  

另外还一点值得注意:SPSecurity.RunWithElevatedPrivileges可以提升代码的运行权限,实现模拟管理员身份的功能。

在RunWithElevatedPrivileges中不要使用SPContext.Current.Web,SPContext.Current.Site,SPControl.GetContextWeb(HttpContext.Current)之类的根据当前上下文得到当前的Web或者Site,根据这些方法得到的所有对象(包括从根据这些对象得到的List,ListItem等等对象)都是以当前网站登录用户权限运作的,即使是在RunWithElevatedPrivileges其运作权限也不会是管理员。

所以,如果要真正让在RunWithElevatedPrivileges中的代码以管理员权限正常运作的话,必须重新初始化相应的对象,比如:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    using (SPSite mySite = new SPSite(SPContext.Current.Site.Url))
    {
        Response.Write(mySite.RootWeb.CurrentUser.LoginName);
    }
});以上mySite.RootWeb.CurrentUser.LoginName返回的是管理员的登录帐号。但是如果按之前所说使用SPContext:SPSecurity.RunWithElevatedPrivileges(delegate()
{
     Response.Write(SPContext.Current.Web.CurrentUser.LoginName);
});这时候即使在提升权限的范围内运行,得到的也是当前网站登录帐户名,而不是管理员登录帐号。

2、这第二点学到的就是如何调试WEBPART。

   我刚刚学会的这一手调试是要在服务器上做开发的,才可以调试,调试方法是将编译生成的DLL文件拷到MOSS工作目录(即80目录下的BIN),将页面也要拷到相应目录下,之后在VS开发环境中“调试”菜单的“附加进程”选中w3wp.exe进程加进来,然后在程序中插入断点之后,在客户端执行页面,便会自动跳入断点以便进行调试。

这里有一点要注意,每次程序有改动都要重新拷贝过去一个dll及相关页面文件噢 ,再重新附加进程才可以的。

今天先写这么多,还有一些我得再想想才好整理的。这些东西都不是原创,但都是遇到问题后找来的资源。首行要感谢这些东东的提供者。收集学习中的点滴,为自己也为需要的朋友提供一点帮助。

 

 

 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14368614/viewspace-351918/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14368614/viewspace-351918/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值