zoukankan      html  css  js  c++  java
  • 下午解决了一个问题

    我们定制的基于SharePoint Service的站点中的用户管理,在增加新用户时包含了两个动作:1、通过.Net中的DirectoryService在相应的OU(我们给每个客户分配了一个OU,以便于管理)中增加一个用户;2、把第1步创建的用户增加到当前SharePoint站点的用户中 在做第一步时遇到一个问题,因为新增用户这个操作是给用户站点的管理员进行的,而用户站点管理员这个用户帐号在服务器上并不是属于Domain Admin的角色,所以是没有通过Active Directory新增用户帐号的权限的。 解决方法是利用角色模拟,在需要新增域中的用户时,模拟一个具有这个权限的用户进行模拟,完成这个操作后,再结束模拟。 WindowsIdentity类是用来描述Windows用户的类,它有一个方法Impersonate(),可以模拟某一用户,但是它需要一个IntPtr类型的表示要模拟的用户的Token Handle来作为参数,这时需要用到Win API来得到这个Handle,所以自己又写了一个类来封装这个操作。 示范代码:// IdentityImpresonation是自定义的用来表示用户模拟的类,构造函数// 参数分别为:要模拟的用户的用户名、密码、所在域(或机器名)IdentityImpersonation imper = new IdentityImpersonation(“tsg”, “123456″, “webreal”);imper.BeginImpersonation();// 进行某些操作imper.StopImpersonation(); 这个类的源码:http://blog.joycode.com/kaneboy/posts/3801.aspx
  • 相关阅读:
    ucosii事件控制块------信号量集
    ucosii事件控制块------消息邮箱与消息队列
    C语言中续行符“”说明
    HTTP请求方法
    HTTP消息结构
    如何在Linux系统上安装字体
    LibreOffice openoffice 区别
    解决linux下不生成core dump文件
    开源图形数据库Neo4j使用 php开发
    Aria2 懒人安装教程
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2333711.html
Copyright © 2011-2022 走看看