代码之家  ›  专栏  ›  技术社区  ›  Michael Kohne

在Visual C++ 6中创建或修改安全描述符

  •  0
  • Michael Kohne  · 技术社区  · 15 年前

    好,Windows DEV平台我有一个WindowsXP框和一个Visual C++ 6的副本。我正在尝试为服务创建或修改安全描述符。我最初从其他答案(和一些阅读)中想到,我应该使用ConvertStringSecurityDescriptorToSecurityDescriptor来设置我的安全描述符。

    除了…我安装的VC++6.0没有这个函数的头(根据msdn,sddl.h)。

    有人能给我指出其他用于创建/修改安全描述符的API吗?如果我能浏览一个现有的(我可以查询服务对象安全性)并删除某些用户,我会很高兴,但是我不能仅仅通过查看msdn就知道如何做到这一点。

    或者,如果有人能告诉我如何在没有适当头的情况下调用这个函数,那就好了。

    显而易见的回答反驳:我可以(并且将)尝试让它在我的系统上安装一个更新版本的VC++,但是上次我问它任何重要的问题时,他们花了7周的时间才作出回应。既然我想在一两周内完成这项工作,我想这个问题不会及时解决。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Jerry Coffin    15 年前

    理论上,您不需要更新的编译器,只需要更新的SDK。实际上,VC++6已经足够老了,它可能在解析当前SDK的头文件时遇到问题。

    作为替代方法,您可以声明指向代码中正确类型函数的指针,然后使用 LoadLibrary GetProcAddress 要获取正确函数的地址,请通过这些指针调用函数。

    不过,作为旁白,我会指出,我怀疑你的设想是否可行。我从来没有试过做你想做的事,所以可能我错了,但每次我做了 任何东西 在Windows中操作安全描述符、dacl、sacl或任何类似的东西,代码最终会 相当地 比最初看起来应该的更长更复杂。即使是非常微不足道的事情,通常也需要至少几百行代码…

        2
  •  0
  •   Ruddy    15 年前

    您可以查看 DCOMPerm 示例,它处理了dacl/ace和您将要遇到的其他结构——这是我创建一组类来处理我们的COM安装时开始的地方——正如@jerry coffin所说,它最终成为了大量代码。

    您必须下载SDK才能获取示例。