public ActionResult Delete(IdentityProviderViewModel model) { var idp = Mapper.Map <IdentityProvider>(model); _idpSvc.Remove(idp); TempData["SuccessMessage"] = "Identity provider has been successfully deleted"; return(RedirectToAction("Index", new { id = "" })); }
public HttpResponseMessage Get() { var x = ComponentSpace.SAML2.SAMLController.Configuration.LocalIdentityProviderConfiguration; // TODO : Map path better? var certFilename = HttpContext.Current.Server.MapPath("~/" + x.LocalCertificateFile); var certificateCollection = new X509Certificate2Collection(); certificateCollection.Import(certFilename, x.LocalCertificatePassword, X509KeyStorageFlags.DefaultKeySet); var certificates = new List <CertificateViewModel>(); foreach (var cert in certificateCollection) { certificates.Add(new CertificateViewModel { Version = cert.Version, SerialNumber = cert.SerialNumber, SignatureAlgorithmId = cert.SignatureAlgorithm.FriendlyName, SubjectName = cert.SubjectName.Name, Issuer = cert.Issuer, IssuerName = cert.IssuerName.Name, NotBefore = cert.NotBefore, NotAfter = cert.NotAfter, PublicKeyAlgorithm = cert.PublicKey.Key.SignatureAlgorithm, SubjectPublicKey = CertificateTools.ExportPublicKeyToPEMFormat(cert.PublicKey.Key as RSA) }); } var result = new IdentityProviderViewModel { Name = x.Name, Description = x.Description, Certificates = certificates }; var jsonText = JsonConvert.SerializeObject(result); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(jsonText, Encoding.UTF8, "application/json"); return(response); }
public ActionResult Create(IdentityProviderViewModel model) { if (!ModelState.IsValid) { return(View("Create", model)); } try { var idp = Mapper.Map <IdentityProvider>(model); _idpSvc.Add(idp); TempData["SuccessMessage"] = "New identity provider has been successfully added"; return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return(View("Create", model)); }
public ActionResult Index(IdentityProviderViewModel model) { if (!ModelState.IsValid) { return(View("Edit", model)); } try { var idp = Mapper.Map <IdentityProvider>(model); _idpSvc.Update(idp); TempData["SuccessMessage"] = "Changes have been successfully saved"; return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return(View("Edit", model)); }
public async Task <IActionResult> Index(CancellationToken cancellationToken) { var authenticatedUser = await SetUser().ConfigureAwait(false); var subject = authenticatedUser.GetSubject(); var ro = subject == null ? null : await GetUserProfile(subject, cancellationToken).ConfigureAwait(false); if (ro == null) { return(BadRequest( new ErrorDetails { Status = HttpStatusCode.BadRequest, Title = ErrorCodes.InternalError, Detail = Strings.TheRoDoesntExist })); } var authenticationSchemes = (await _authenticationSchemeProvider.GetAllSchemesAsync().ConfigureAwait(false)).Where( a => !string.IsNullOrWhiteSpace(a.DisplayName)); var viewModel = new ProfileViewModel(ro.Claims); foreach (var profile in ro.ExternalLogins) { var record = new IdentityProviderViewModel(profile.Issuer, profile.Subject); viewModel.LinkedIdentityProviders.Add(record); } var actualScheme = authenticatedUser?.Identity?.AuthenticationType; viewModel.UnlinkedIdentityProviders = authenticationSchemes .Where( a => a.DisplayName != null && !a.DisplayName.StartsWith('_') && !ro.ExternalLogins.Any(p => p.Issuer == a.Name && a.Name != actualScheme)) .Select(p => new IdentityProviderViewModel(p.Name)) .ToList(); return(Ok(viewModel)); }
public async Task <IActionResult> Profile() { var authenticatedUser = await SetUser(); var actualScheme = authenticatedUser.Identity.AuthenticationType; var profiles = await _profileActions.GetProfiles(authenticatedUser.GetSubject()); var authenticationSchemes = (await _authenticationSchemeProvider.GetAllSchemesAsync()).Where(a => !string.IsNullOrWhiteSpace(a.DisplayName)); var viewModel = new ProfileViewModel(); if (profiles != null && profiles.Any()) { foreach (var profile in profiles) { var record = new IdentityProviderViewModel(profile.Issuer, profile.Subject); viewModel.LinkedIdentityProviders.Add(record); } } viewModel.UnlinkedIdentityProviders = authenticationSchemes.Where(a => profiles != null && !profiles.Any(p => p.Issuer == a.Name && a.Name != actualScheme)) .Select(p => new IdentityProviderViewModel(p.Name)).ToList(); return(View("Profile", viewModel)); }