提升MOSS Event Handler事件处理程序运行级别的方法
2007-05-17 20:49
537 查看
MOSS 的列表事件处理程序,默认是以当前用户的权限来操作的, 但是如果要进行当前用户权限以外的操作,比如设定条目权限....等等, 这种情况就要提升当前进程的权限了.
在Choral主页中找到这个方法,(没有试验,准备试验中...)
http://blog.joycode.com/choral/archive/2007/05/14/102528.aspx
没有想到那么简单, 以前我还是自己用API函数来搞定, 真是弱智呀.不过把那个用API函数搞定的程序的也贴进来,大家共享一下:
//以下用户管理用户来登录
protected static WindowsIdentity CreateIdentity(string User, string
Domain, string Password)
[DllImport("advapi32.dll", SetLastError=true)]
private static extern bool LogonUser(String lpszUsername, String
lpszDomain, String lpszPassword,
int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
private extern static bool CloseHandle(IntPtr handle);
使用的时候, 应该这样使用:
WindowsImpersonationContext wic = CreateIdentity ("用户","域名","密码") .Impersonate();
使用完毕,应该释放权限:
wic.Undo ();
结束! 今天真高兴, 终于找到一个捷径,但我提供的程序代码,不仅可以用在MOSS和SharePoint中,开发ASPX、DLL、其它程序也都可以用哦。
在Choral主页中找到这个方法,(没有试验,准备试验中...)
http://blog.joycode.com/choral/archive/2007/05/14/102528.aspx
没有想到那么简单, 以前我还是自己用API函数来搞定, 真是弱智呀.不过把那个用API函数搞定的程序的也贴进来,大家共享一下:
//以下用户管理用户来登录
protected static WindowsIdentity CreateIdentity(string User, string
Domain, string Password)
[DllImport("advapi32.dll", SetLastError=true)]
private static extern bool LogonUser(String lpszUsername, String
lpszDomain, String lpszPassword,
int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
private extern static bool CloseHandle(IntPtr handle);
使用的时候, 应该这样使用:
WindowsImpersonationContext wic = CreateIdentity ("用户","域名","密码") .Impersonate();
使用完毕,应该释放权限:
wic.Undo ();
结束! 今天真高兴, 终于找到一个捷径,但我提供的程序代码,不仅可以用在MOSS和SharePoint中,开发ASPX、DLL、其它程序也都可以用哦。
相关文章推荐
- js事件处理程序的运行环境(改变attachEvent内部的this指向&封装兼容性的 addEvent方法)
- jquery delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数
- delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如
- #501 – 在对个控件中共享事件处理程序(Sharing an Event Handler Across Multiple Controls)
- 关于Ajax控件ModalPopupExtender出现的 未通过 Sys.UI.DomEvent.addHandler 方法添加处理程序的解决方法。
- jQuery on() 方法—向未创建的元素添加事件处理程序
- 利用stage.invalidate()方法和render事件提高as3程序的运行效率
- 关于Java程序中类定义对象的处理,以及类中变量与方法的运行过程
- IIS7.5 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 错误的解决方法
- ubuntu 运行程序内存不够的处理方法
- asp.net 发布到IIS中出现”处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”“错误的解决方法
- MOSS 2007 应用随笔(20)-- 使用SPEventHandler事件处理程序(四)使事件处理程序具有通用性
- HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法
- JS事件处理程序的几种方法
- SELinux阻止某些程序运行的处理方法
- 在Win7(64位)系统下运行World Wind源码程序出现“未处理BadImageFormatException”错误解决方法(另:附加信息)
- 3.7.2 event_init:初始化事件处理程序
- 关于运行web程序的几点错误处理方法
- JavaScript权威指南_165_第17章_事件处理_17.2-注册事件处理程序-attachEvent()
- JQ bind方法被选元素添加的一个或多个事件处理程序