in src/PFXImportPowershell/PFXImportPS/cmdlets/GetUserPFXCertificate.cs [114:185]
protected override void ProcessRecord()
{
Hashtable modulePrivateData = this.MyInvocation.MyCommand.Module.PrivateData as Hashtable;
if (AuthenticationResult == null)
{
AuthenticationResult = Authenticate.GetAuthToken(modulePrivateData);
}
if (!Authenticate.AuthTokenIsValid(AuthenticationResult))
{
this.ThrowTerminatingError(
new ErrorRecord(
new AuthenticationException("Cannot get Authentication Token"),
"Authentication Failure",
ErrorCategory.AuthenticationError,
AuthenticationResult));
}
string graphURI = Authenticate.GetGraphURI(modulePrivateData);
string schemaVersion = Authenticate.GetSchemaVersion(modulePrivateData);
string urlbase = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/deviceManagement/userPfxCertificates", graphURI, schemaVersion);
if (UserThumbprintList != null && UserThumbprintList.Count > 0)
{
foreach (UserThumbprint userthumbprint in UserThumbprintList)
{
string url = string.Format("{0}?$filter=tolower(userPrincipalName) eq '{1}' and tolower(thumbprint) eq '{2}'", urlbase, userthumbprint.User.ToLowerInvariant(), userthumbprint.Thumbprint.ToLowerInvariant());
HttpWebRequest request;
try
{
request = CreateWebRequest(url, AuthenticationResult);
// Returns a single record and comes back in a different format than the other requests.
ProcessSingleResponse(request, "User:" + userthumbprint.User + " Thumbprint:" + userthumbprint.Thumbprint);
}
catch (WebException we)
{
this.WriteError(new ErrorRecord(we, we.Message + " request-id:" + we.Response.Headers["request-id"], ErrorCategory.InvalidResult, userthumbprint));
}
}
}
else if (UserList != null && UserList.Count > 0)
{
foreach (string user in UserList)
{
string url = string.Format("{0}?$filter=tolower(userPrincipalName) eq '{1}'", urlbase, user.ToLowerInvariant());
HttpWebRequest request;
try
{
request = CreateWebRequest(url, AuthenticationResult);
ProcessCollectionResponse(request, user);
}
catch (WebException we)
{
this.WriteError(new ErrorRecord(we, we.Message + " request-id:" + we.Response.Headers["request-id"], ErrorCategory.InvalidResult, user));
}
}
}
else
{
HttpWebRequest request;
try
{
request = CreateWebRequest(urlbase, AuthenticationResult);
ProcessCollectionResponse(request, null);
}
catch (WebException we)
{
this.WriteError(new ErrorRecord(we, we.Message + " request-id:" + we.Response.Headers["request-id"], ErrorCategory.InvalidResult, null));
}
}
}