SharpCifs.Smb.SmbTransport.GetDfsReferrals C# (CSharp) Méthode

GetDfsReferrals() private méthode

private GetDfsReferrals ( NtlmPasswordAuthentication auth, string path, int rn ) : DfsReferral
auth NtlmPasswordAuthentication
path string
rn int
Résultat DfsReferral
        internal virtual DfsReferral GetDfsReferrals(NtlmPasswordAuthentication auth, string
             path, int rn)
        {
            SmbTree ipc = GetSmbSession(auth).GetSmbTree("IPC$", null);
            Trans2GetDfsReferralResponse resp = new Trans2GetDfsReferralResponse();
            ipc.Send(new Trans2GetDfsReferral(path), resp);
            if (resp.NumReferrals == 0)
            {
                return null;
            }
            if (rn == 0 || resp.NumReferrals < rn)
            {
                rn = resp.NumReferrals;
            }
            DfsReferral dr = new DfsReferral();
            string[] arr = new string[4];
            long expiration = Runtime.CurrentTimeMillis() + Dfs.Ttl * 1000;
            int di = 0;
            for (; ; )
            {
                dr.ResolveHashes = auth.HashesExternal;
                dr.Ttl = resp.Referrals[di].Ttl;
                dr.Expiration = expiration;
                if (path.Equals(string.Empty))
                {
                    dr.Server = Runtime.Substring(resp.Referrals[di].Path, 1).ToLower();
                }
                else
                {
                    DfsPathSplit(resp.Referrals[di].Node, arr);
                    dr.Server = arr[1];
                    dr.Share = arr[2];
                    dr.Path = arr[3];
                }
                dr.PathConsumed = resp.PathConsumed;
                di++;
                if (di == rn)
                {
                    break;
                }
                dr.Append(new DfsReferral());
                dr = dr.Next;
            }
            return dr.Next;
        }

Usage Example

Exemple #1
0
 /// <exception cref="SharpCifs.Smb.SmbAuthException"></exception>
 public virtual DfsReferral GetReferral(SmbTransport trans, string domain, string
                                        root, string path, NtlmPasswordAuthentication auth)
 {
     if (Disabled)
     {
         return(null);
     }
     try
     {
         string p = "\\" + domain + "\\" + root;
         if (path != null)
         {
             p += path;
         }
         DfsReferral dr = trans.GetDfsReferrals(auth, p, 0);
         if (dr != null)
         {
             return(dr);
         }
     }
     catch (IOException ioe)
     {
         if (Log.Level >= 4)
         {
             Runtime.PrintStackTrace(ioe, Log);
         }
         if (StrictView && ioe is SmbAuthException)
         {
             throw (SmbAuthException)ioe;
         }
     }
     return(null);
 }
All Usage Examples Of SharpCifs.Smb.SmbTransport::GetDfsReferrals