示例#1
0
        internal static NetworkCredential GetNetworkCredentialsCopy(NetworkCredential networkCredential)
        {
            NetworkCredential result;

            if (networkCredential != null && !NetworkCredentialHelper.IsDefault(networkCredential))
            {
                result = new NetworkCredential(networkCredential.UserName, networkCredential.Password, networkCredential.Domain);
            }
            else
            {
                result = networkCredential;
            }
            return(result);
        }
示例#2
0
        internal static NetworkCredential GetNetworkCredentialsCopy(NetworkCredential networkCredential)
        {
            NetworkCredential result;

            if (networkCredential != null && !NetworkCredentialHelper.IsDefault(networkCredential))
            {
                result = new NetworkCredential(NetworkCredentialHelper.UnsafeGetUsername(networkCredential), NetworkCredentialHelper.UnsafeGetPassword(networkCredential), NetworkCredentialHelper.UnsafeGetDomain(networkCredential));
            }
            else
            {
                result = networkCredential;
            }
            return(result);
        }
示例#3
0
 internal static EndpointIdentity CreateWindowsIdentity(NetworkCredential serverCredential)
 {
     if (serverCredential != null && !NetworkCredentialHelper.IsDefault(serverCredential))
     {
         string upn;
         if (serverCredential.Domain != null && serverCredential.Domain.Length > 0)
         {
             upn = serverCredential.UserName + "@" + serverCredential.Domain;
         }
         else
         {
             upn = serverCredential.UserName;
         }
         return(EndpointIdentity.CreateUpnIdentity(upn));
     }
     return(CreateWindowsIdentity());
 }
示例#4
0
        internal static string AppendWindowsAuthenticationInfo(string inputString, NetworkCredential credential,
                                                               AuthenticationLevel authenticationLevel, TokenImpersonationLevel impersonationLevel)
        {
            const string delimiter = "\0"; // nonprintable characters are invalid for SSPI Domain/UserName/Password

            if (NetworkCredentialHelper.IsDefault(credential))
            {
                string sid = NetworkCredentialHelper.GetCurrentUserIdAsString(credential);
                return(string.Concat(inputString, delimiter,
                                     sid, delimiter,
                                     AuthenticationLevelHelper.ToString(authenticationLevel), delimiter,
                                     TokenImpersonationLevelHelper.ToString(impersonationLevel)));
            }
            return(string.Concat(inputString, delimiter,
                                 credential.Domain, delimiter,
                                 credential.UserName, delimiter,
                                 credential.Password, delimiter,
                                 AuthenticationLevelHelper.ToString(authenticationLevel), delimiter,
                                 TokenImpersonationLevelHelper.ToString(impersonationLevel)));
        }