Introduce new test module 'WebListener.psm1'. Now web HTTPS tests can use it to exclude using external sites. PowerShell/PowerShell#4609 * [Feature] Add Tests for Web Cmdlet Certificate Authentication PowerShell/PowerShell#4609 * [feature] Add new app to Publish-PSTestTools refactor tests also add ASP.NET to .spelling * [feature] spelling fix * [feature] revert badssl changes * [feature] Impliment suggestions * [feature] Spelling, var rename, port 8443 to 8083 rebase fix conflict * [feature] Rename to HttpsListener and Module-ize . * [feature] password protect ClientCert to fix macOS import issue * [feature] Rename to WebListener * Rename HttpsListener to WebListener * Switch Listener from Razor pages to MVC * Address PR feedback * Adjust tests * [feature] Address PR feedback * [feature] Replace missing smeicolons * [feature] Address PR Feedback * [feature] Cleanup and minor fix * Enum was not used * GetStatus() was not accessing the correct property chain * Added -Test param to make URL generation smoother in test code and to fix double / issues * [feature] More minor fixes * Https when it matters. * Expand property... not exclude.. * Remove superfluous and outdated ToString() override * [Feature] Move ClientCeret.pfx to WebListener Module * Move the cert * Adjust Get-WebListenerClientCertificate * Remove cert from csproj * ActionResult -> JsonResult (was mistakenly left as ActionResult during testing).. * [Feature] Move ServerCert.pfx to Module * Move cert * Upate csproj * Update module * Add/Update README.md's CI Retest.
43 lines
1.6 KiB
C#
43 lines
1.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using mvc.Models;
|
|
|
|
namespace mvc.Controllers
|
|
{
|
|
public class CertController : Controller
|
|
{
|
|
public JsonResult Index()
|
|
{
|
|
// X509Certificate2 objects do not serialize as JSON. Create a HashTable instead
|
|
Hashtable output = new Hashtable
|
|
{
|
|
{"Status", "FAILED"}
|
|
};
|
|
if (null != HttpContext.Connection.ClientCertificate)
|
|
{
|
|
output = new Hashtable
|
|
{
|
|
{"Status" , "OK"},
|
|
{"Thumbprint" , HttpContext.Connection.ClientCertificate.Thumbprint},
|
|
{"Subject" , HttpContext.Connection.ClientCertificate.Subject},
|
|
{"SubjectName" , HttpContext.Connection.ClientCertificate.SubjectName.Name},
|
|
{"Issuer" , HttpContext.Connection.ClientCertificate.Issuer},
|
|
{"IssuerName" , HttpContext.Connection.ClientCertificate.IssuerName.Name},
|
|
{"NotAfter" , HttpContext.Connection.ClientCertificate.NotAfter},
|
|
{"NotBefore" , HttpContext.Connection.ClientCertificate.NotBefore}
|
|
};
|
|
}
|
|
return Json(output);
|
|
}
|
|
|
|
public IActionResult Error()
|
|
{
|
|
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
|
}
|
|
}
|
|
}
|