⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9.1.3 信任成员的管理.htm

📁 Windows2000后台服务程序开发手册
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            size=2>NetUserGetLocalGroups函数的原型如下:</FONT></P>
            <DIV style="LINE-HEIGHT: 25px; BACKGROUND-COLOR: #d7d7d7"><FONT 
            style="LINE-HEIGHT: 25px" face=Arial size=3><PRE style="LINE-HEIGHT: 25px">NET_API_STATUS NetUserGetLocalGroups(&nbsp;&nbsp;<BR> PCWSTR pszServerName,&nbsp;&nbsp;<BR> PCWSTR pszUsername,&nbsp;&nbsp;<BR> DWORD dwLevel,&nbsp;&nbsp;<BR> DWORD dwFlags,&nbsp;&nbsp;<BR> PBYTE* ppbBuf,&nbsp;&nbsp;<BR> DWORD dwPrefMaxLen,&nbsp;&nbsp;<BR> PDWORD pdwEntriesRead,&nbsp;&nbsp;<BR> PDWORD pdwTotalEntries);</PRE></FONT></DIV>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>如您所见,这个函数与我们讨论过的NetLocalGroupEnum及NetUserEnum函数看起来很类似。事实上,主要的不同处在于这个函数使用了LOCALGROUP_USERS_INFO_* 
            结构集(LOCALGROUP_USERS_INFO_0至今仍存在)。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>dwFlags唯一有效的值即是LG_INCLUDE_INDIRECT,它指示NetUserGetLocalGroups也应该传回为间接成员群组的使用者(由pszUsername指出),或者是0,即指示函数应该只传回为直接成员群组的使用者。当pszUsername为通用群组或是网域群组的成员时-即本机群组的成员,可能也会产生间接成员的情形。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>您可以传递MAX_PREFERRED_LENGTH给dwPrefMaxLen参数,但是无论使用何种方式,您都必须注意经由pdwEntriesRead参数及pdwTotalEntries参数传回的值,以确定所有可能的项目皆被传回。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>和之前的列举函数不同,它没有再次呼叫NetUserGetLocalGroups继续列举的方法。您不太可能会面临列举多于几十个群组的状况,而列举使用者可能会传回数千个帐户项目。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#3e74d7 
            size=3><B style="LINE-HEIGHT: 25px">使用NetLocalGroupGetMembers函数<BR 
            style="LINE-HEIGHT: 25px"> </B></FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>第二个列举成员资讯的方式是撷取与个别群组关联的成员组。您应该使用NetLocalGroupGetMembers函数这样做:</FONT></P>
            <DIV style="LINE-HEIGHT: 25px; BACKGROUND-COLOR: #d7d7d7"><FONT 
            style="LINE-HEIGHT: 25px" face=Arial size=3><PRE style="LINE-HEIGHT: 25px">NET_API_STATUS NetLocalGroupGetMembers(&nbsp;&nbsp;<BR> PCWSTR pszServerName,&nbsp;&nbsp;<BR> PCWSTR pszLocalGroupName,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwLevel,&nbsp;&nbsp;<BR> PBYTE* ppbBuf,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwPrefMaxLen,&nbsp;&nbsp;<BR> PDWORD pdwEntriesRead,&nbsp;&nbsp;<BR> PDWORD pdwTotalEntries,&nbsp;&nbsp;<BR> PDWORD_PTR pdwResumeHandle);</PRE></FONT></DIV>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>这个函数会取得服务器名称及本机群组名称以作为它的第一个参数。常见的dwLevel参数指出您想要经由ppbBuf参数传回的LOCALGROUP_MEMBERS_INFO_* 
            结构集level。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>LOCALGROUP_MEMBERS_INFO_* 
            结构允许您处理信任成员名称及网域名称,或是它们的SIDs,下一节将作详细地说明。以下是LOCALGROUP_MEMBERS_ 
            INFO_0 及 LOCALGROUP_MEMBERS_INFO_3 结构的定义:</FONT></P>
            <DIV style="LINE-HEIGHT: 25px; BACKGROUND-COLOR: #d7d7d7"><FONT 
            style="LINE-HEIGHT: 25px" face=Arial size=3><PRE style="LINE-HEIGHT: 25px">typedef struct _LOCALGROUP_MEMBERS_INFO_0 {&nbsp;&nbsp;<BR> PSID&nbsp;&nbsp; lgrmi0_sid;&nbsp;&nbsp;<BR>}LOCALGROUP_MEMBERS_INFO_0;&nbsp;&nbsp;<BR>typedef struct _LOCALGROUP_MEMBERS_INFO_3 {&nbsp;&nbsp;<BR> PWSTR&nbsp;&nbsp; lgrmi3_domainandname;&nbsp;&nbsp;<BR>}LOCALGROUP_MEMBERS_INFO_3;</PRE></FONT></DIV>
            <HR style="LINE-HEIGHT: 25px">

            <P><FONT style="LINE-HEIGHT: 25px" face=Arial color=#3e77d7 size=3 
            Black><B style="LINE-HEIGHT: 25px">说明</B></FONT> </P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>处理信任成员时,了解许多安全性函数所需的SID值是很重要的。再者,就SIDs来说,本机群组成员的操作函数可让您撷取信任成员项目。</FONT></P>
            <HR style="LINE-HEIGHT: 25px">

            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>LOCALGROUP_MEMBERS_INFO_0中使用的PSID类型指出一个指向SID结构的指标。这些结构的任何一个都可根据您软件的需要而与NetLocalGroupGetMembers一起使用。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>dwPrefMaxLen、pdwEntriesRead、pdwTotalEntries及pdwResumeHandle参数是惯用缓冲器大小、读取的项目、剩下的项目以及继续列举型别的值。这些参数和已经讨论过的NetUserEnum及NetLocalGroupEnum函数中相同名称的参数一样,以完全相同的方式运作。事实上,为了与NetLocalGroupGetMembers一起使用,NetLocalGroupEnum的一部分范例函数PrintLocalGroups,可以容易地修改如下:</FONT></P>
            <DIV style="LINE-HEIGHT: 25px; BACKGROUND-COLOR: #d7d7d7"><FONT 
            style="LINE-HEIGHT: 25px" face=Arial size=3><PRE style="LINE-HEIGHT: 25px">void PrintLocalGroupMembers(WCHAR *pszGroup) {&nbsp;&nbsp;<BR> ULONG_PTR lResume = 0;&nbsp;&nbsp;<BR> ULONG lTotal = 0;&nbsp;&nbsp;<BR> ULONG lReturned = 0;&nbsp;&nbsp;<BR> ULONG lIndex = 0;&nbsp;&nbsp;<BR> NET_API_STATUS netStatus;&nbsp;&nbsp;<BR> LOCALGROUP_MEMBERS_INFO_3* pinfoMembers;&nbsp;&nbsp;<BR> do {&nbsp;&nbsp;<BR>&nbsp;&nbsp;netStatus = NetLocalGroupGetMembers(NULL, pszGroup, 3,&nbsp;&nbsp;<BR>&nbsp;&nbsp; (PBYTE*) &amp;pinfoMembers, MAX_PREFERRED_LENGTH,&nbsp;&nbsp;<BR>&nbsp;&nbsp; &amp;lReturned, &amp;lTotal, &amp;lResume);&nbsp;&nbsp;<BR>&nbsp;&nbsp;if ((netStatus == ERROR_MORE_DATA) ||&nbsp;&nbsp;<BR>&nbsp;&nbsp; (netStatus == NERR_Success)) {&nbsp;&nbsp;<BR>&nbsp;&nbsp; for (lIndex = 0; lIndex &lt; lReturned; lIndex++) {&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wprintf(L"%s\n",&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; pinfoMembers[lIndex].lgrmi3_domainandname);&nbsp;&nbsp;<BR>&nbsp;&nbsp; }&nbsp;&nbsp;<BR>&nbsp;&nbsp; NetApiBufferFree(pinfoMembers);&nbsp;&nbsp;<BR>&nbsp;&nbsp;}&nbsp;&nbsp;<BR> }while (netStatus == ERROR_MORE_DATA);&nbsp;&nbsp;<BR>}</PRE></FONT></DIV>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>使用NetLocalGroupSetMembers函数来设定本机群组的成员:</FONT></P>
            <DIV style="LINE-HEIGHT: 25px; BACKGROUND-COLOR: #d7d7d7"><FONT 
            style="LINE-HEIGHT: 25px" face=Arial size=3><PRE style="LINE-HEIGHT: 25px">NET_API_STATUS NetLocalGroupSetMembers(&nbsp;&nbsp;<BR> PCWSTR pszServerName,&nbsp;&nbsp;<BR> PCWSTR pszGroupName,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwLevel,&nbsp;&nbsp;<BR> PBYTE&nbsp;&nbsp;pbBuf,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwTotalEntries);</PRE></FONT></DIV>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>PszServerName及pszGroupName参数指示您正在设定成员的系统名称及本机群组。DwLevel参数指出您想要使用的LOCALGROUP_MEMBERS_INFO_* 
            结构集level。您可以传递0或3,以分别表示LOCALGROUP_MEMBERS_INFO_0或LOCALGROUP_MEMBERS_INFO_3,两者在稍早都已定义过。这意味着您可以选择使用信任成员帐户名称字串或是SIDs来设定成员。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>您应该传递一个指标到选择的结构类型阵列给pbBuf参数,以及阵列中项目的数量为dwTotalEntries参数的内容。假如函数执行成功,被pbBuf以阵列传递之表示信任成员清单将是这个群组的新成员清单。记住信任成员清单将会取代任一个现行的群组成员。如果函数执行成功,将传回NERR_Success。</FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#3e74d7 
            size=3><B style="LINE-HEIGHT: 25px">其他有用的函数<BR 
            style="LINE-HEIGHT: 25px"> </B></FONT></P>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>现在您知道撷取及设定所有本机群组之信任成员的方法,还有两个有用的函数,可让您从现行成员的群组中,只新增及删除特定的信任成员清单。这两个函数分别是NetLocalGroupAddMembers及NetLocalGroupDelMembers:</FONT></P>
            <DIV style="LINE-HEIGHT: 25px; BACKGROUND-COLOR: #d7d7d7"><FONT 
            style="LINE-HEIGHT: 25px" face=Arial size=3><PRE style="LINE-HEIGHT: 25px">NET_API_STATUS NetLocalGroupAddMembers(&nbsp;&nbsp;<BR> PCWSTR pszServerName,&nbsp;&nbsp;<BR> PCWSTR pszGroupName,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwLevel,&nbsp;&nbsp;<BR> PBYTE&nbsp;&nbsp;pbBuf,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwTotalEntries);&nbsp;&nbsp;<BR>NET_API_STATUS NetLocalGroupDelMembers(&nbsp;&nbsp;<BR> PCWSTR pszServerName,&nbsp;&nbsp;<BR> PCWSTR pszGroupName,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwLevel,&nbsp;&nbsp;<BR> PBYTE&nbsp;&nbsp;pbBuf,&nbsp;&nbsp;<BR> DWORD&nbsp;&nbsp;dwTotalEntries);</PRE></FONT></DIV>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>您可以使用跟NetLocalGroupSetMembers一样的方式使用这些函数。关于范例的部份,请参阅本章稍后叙述的&nbsp;</FONT><FONT 
            style="LINE-HEIGHT: 25px" face=arial color=#000000 size=2><A 
            style="LINE-HEIGHT: 25px" 
            href="http://www.acejoy.com/doc/serverside/9.htm#209007" 
            target=_new>TrusteeMan范例应用程序</A>&nbsp;。</FONT></P><A 
            style="LINE-HEIGHT: 25px" name=209004></DIV></A></DIV< p>
            <P class=content_page><A 
            href="http://www.acejoy.com/Html/Article/network/6020061026092905_P2.html">上一页</A>&nbsp;&nbsp;<A 
            href="http://www.acejoy.com/Html/Article/network/6020061026092905.html">[1]</A>&nbsp;<A 
            href="http://www.acejoy.com/Html/Article/network/6020061026092905_P2.html">[2]</A>&nbsp;<STRONG><FONT 
            color=#ff0033>[3]</FONT></STRONG>&nbsp;</P>
            <DIV></DIV><BR><BR></TD></TR></TBODY></TABLE>
      <TABLE style="CLEAR: both" cellSpacing=0 cellPadding=0 width="97%">
        <TBODY>
        <TR>
          <TD align=right>
            <TABLE>
              <TBODY>
              <TR>
                <TD>阅读:<SPAN id=news_hits></SPAN>
                  <SCRIPT src="9.1.3 信任成员的管理.files/GetHits.htm" 
                  type=text/JavaScript></SCRIPT>
                   次<BR>录入:<A 
                  href="http://www.acejoy.com/User/Info.Asp?UserName=admin">admin</A><BR><BR></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD align=right>【 <A 
            href="http://www.acejoy.com/Comment.asp?ChannelID=1&amp;Action=Write&amp;InfoID=60">评论</A> 
            】 【 <A 
            href="http://www.acejoy.com/User/SendMail.asp?Title=Windows2000 服务器端应用程序开发设计指南-信任成员的管理(1)" 
            target=_blank>推荐</A> 】 【 <A href="javascript:window.print()">打印</A> 
            】 </TD></TR></TBODY></TABLE>
      <TABLE style="CLEAR: both" width="97%" align=center>
        <TBODY>
        <TR>
          <TD>上一篇:<A 
            title="标题:Windows2000 服务器端应用程序开发设计指南-Windows Management Instrumentation&#13;&#10;作者:Jeffrey Richter Jason D. Clark&#13;&#10;更新:2006-10-23 9:19:39&#13;&#10;点击:761" 
            href="http://www.acejoy.com/Html/Article/network/5920061023091939.html">Windows2000 
            服务器端应用程序开发设计指南-Windows Management Instrumentation</A><BR>下一篇:<A 
            title="标题:Windows2000 服务器端应用程序开发设计指南-信任成员的管理(2)&#13;&#10;作者:Jeffrey Richter Jason D. Clark&#13;&#10;更新:2006-10-26 9:34:56&#13;&#10;点击:485" 
            href="http://www.acejoy.com/Html/Article/network/6120061026093456.html">Windows2000 
            服务器端应用程序开发设计指南-信任成员的管理(2)</A> </TD></TR></TBODY></TABLE></TD>
    <TD class=mr></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV class=mframe>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=tl></TD>
    <TD class=tm><SPAN class=tt>相关新闻</SPAN> </TD>
    <TD class=tr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=ml></TD>
    <TD class=mm>
      <TABLE height="100%" cellSpacing=5 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=top>
            <SCRIPT language=javascript 
            src="9.1.3 信任成员的管理.files/GetCorrelative.htm"></SCRIPT>
          </TD></TR></TBODY></TABLE></TD>
    <TD class=mr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=tl></TD>
    <TD class=tm><SPAN class=tt>本文评论</SPAN> </TD>
    <TD class=tr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=ml></TD>
    <TD class=mm>
      <P>&nbsp;</P>
      <TABLE height="100%" cellSpacing=5 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=top>
            <SCRIPT language=javascript 
            src="9.1.3 信任成员的管理.files/Comment.htm"></SCRIPT>
          </TD></TR></TBODY></TABLE></TD>
    <TD class=mr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=ml></TD>
    <TD class=mm></TD>
    <TD class=mr></TD></TR></TBODY></TABLE></DIV>
<TABLE id=footer cellSpacing=0 cellPadding=0 border=0>
  <TBODY>
  <TR style="LINE-HEIGHT: 130%" align=middle>
    <TD height=23>&nbsp;<A 
      href='javascript:window.external.addFavorite("http://www.acejoy.com","ACE开发者")'><FONT 
      color=#000000>加入收藏</FONT></A>&nbsp;- &nbsp;<A 
      href="http://www.acejoy.com/Help.asp?Action=aboutweb" target=_blank><FONT 
      color=#000000>关于本站</FONT></A>&nbsp;- &nbsp;<A class=Bottom 
      href="http://www.acejoy.com/Help.asp?Action=Copyright" target=_blank><FONT 
      color=#000000>版权申明</FONT></A>&nbsp;- &nbsp;<A class=Bottom 
      href="http://www.acejoy.com/Help.asp?Action=aboutweb" target=_blank><FONT 
      color=#000000>联系站长</FONT></A>&nbsp;- &nbsp;<A class=Bottom 
      href="http://www.acejoy.com/LinkSite.asp" target=_blank><FONT 
      color=#000000>友情链接</FONT></A>&nbsp;&nbsp; </TD></TR>
  <TR align=middle>
    <TD height=23>Copyright&copy; 2004-2006 <A 
      href="http://www.acejoy.com/">http://www.acejoy.com/</A> .All Rights 
      Reserved <A href="http://www.miibeian.gov.cn/" target=_blank>京ICP备06055248 
      </A>
      <SCRIPT language=JavaScript src="9.1.3 信任成员的管理.files/stat.htm" 
      charset=gb2312></SCRIPT>
    </TD></TR></TBODY></TABLE>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV><!--Powered by:CreateLive CMS Version 3.1(www.acejoy.com) CreateDate:2007-3-4 10:50:39--></DIV></DIV></DIV></DIV></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -