Files
SGU-CredentialProvider/src/Lithnet.CredentialProvider.Management/GetCredentialProviderCmdlet.cs
T

49 lines
1.8 KiB
C#

using System;
using System.Management.Automation;
namespace Lithnet.CredentialProvider.RegistrationTool
{
[Cmdlet(VerbsCommon.Get, "CredentialProvider", DefaultParameterSetName = "None")]
public class GetCredentialProviderCmdlet : PSCmdlet
{
[Parameter(ParameterSetName = "GetByFileName")]
public string File { get; set; }
[Parameter(ParameterSetName = "GetByClsid")]
public Guid Clsid { get; set; }
[Parameter(ParameterSetName = "GetByProgId")]
public string ProgId { get; set; }
protected override void ProcessRecord()
{
if (this.ParameterSetName == "None")
{
foreach (var item in CredentialProviderRegistrationServices.GetCredentalProviders())
{
this.WriteObject(item);
}
}
else if (this.ParameterSetName == "GetByFileName")
{
var assembly = CredentialProviderRegistrationServices.LoadAssembly(this.File);
foreach (var type in CredentialProviderRegistrationServices.GetCredentialProviders(assembly))
{
CredentialProviderRegistrationServices.GetCredentialProvider(type);
this.WriteVerbose($"Got credential provider {type.FullName}");
}
}
else if (this.ParameterSetName == "GetByClsid")
{
CredentialProviderRegistrationServices.GetCredentialProvider(this.Clsid);
}
else if (this.ParameterSetName == "GetByProgId")
{
var clsid = CredentialProviderRegistrationServices.GetClsidFromProgId(this.ProgId);
CredentialProviderRegistrationServices.GetCredentialProvider(clsid);
}
}
}
}