Inheritance: SharpCifs.Dcerpc.Ndr.NdrObject
Esempio n. 1
0
        /// <exception cref="System.IO.IOException"></exception>
        internal static Sid[] GetGroupMemberSids0(DcerpcHandle handle, SamrDomainHandle
			 domainHandle, Sid domsid, int rid, int flags)
        {
            SamrAliasHandle aliasHandle = null;
            Lsarpc.LsarSidArray sidarray = new Lsarpc.LsarSidArray();
            MsrpcGetMembersInAlias rpc = null;
            try
            {
                aliasHandle = new SamrAliasHandle(handle, domainHandle, unchecked(0x0002000c), rid);
                rpc = new MsrpcGetMembersInAlias(aliasHandle, sidarray);
                handle.Sendrecv(rpc);
                if (rpc.Retval != 0)
                {
                    throw new SmbException(rpc.Retval, false);
                }
                Sid[] sids = new Sid[rpc.Sids.NumSids];
                string originServer = handle.GetServer();
                NtlmPasswordAuthentication originAuth = (NtlmPasswordAuthentication)handle.GetPrincipal
                    ();
                for (int i = 0; i < sids.Length; i++)
                {
                    sids[i] = new Sid(rpc.Sids.Sids[i].Sid, 0, null, null, false);
                    sids[i].OriginServer = originServer;
                    sids[i].OriginAuth = originAuth;
                }
                if (sids.Length > 0 && (flags & SidFlagResolveSids) != 0)
                {
                    ResolveSids(originServer, originAuth, sids);
                }
                return sids;
            }
            finally
            {
                if (aliasHandle != null)
                {
                    aliasHandle.Close();
                }
            }
        }
Esempio n. 2
0
			public SamrGetMembersInAlias(Rpc.PolicyHandle aliasHandle, Lsarpc.LsarSidArray 
				sids)
			{
				this.AliasHandle = aliasHandle;
				this.Sids = sids;
			}
Esempio n. 3
0
 public SamrGetMembersInAlias(Rpc.PolicyHandle aliasHandle, Lsarpc.LsarSidArray sids)
 {
     this.AliasHandle = aliasHandle;
     this.Sids        = sids;
 }