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

  • 相关阅读:
    Python-TXT文本操作
    Appium-处理系统弹窗
    Appium-服务关键字
    App Inspector-iOS真机功能详解
    Appium+Python3+iOS真机环境搭建
    Appium-超过60s的应用场景如何处理
    python-入门的第一个爬虫例子
    Mysql(五) JDBC
    Mysql(四)正则表达式
    Mysql(三)约束
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2436673.html
Copyright © 2011-2022 走看看