58 lines
1.8 KiB
C#
58 lines
1.8 KiB
C#
// Copyright (c) Brock Allen & Dominick Baier. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
|
|
|
|
|
using eShopOnContainers.Identity;
|
|
using Identity.API.Services;
|
|
using IdentityServer4.Quickstart.UI.Models;
|
|
using IdentityServer4.Services;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Options;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace IdentityServer4.Quickstart.UI.Controllers
|
|
{
|
|
public class HomeController : Controller
|
|
{
|
|
private readonly IIdentityServerInteractionService _interaction;
|
|
private readonly IOptionsSnapshot<AppSettings> _settings;
|
|
private readonly IRedirectService _redirectSvc;
|
|
|
|
public HomeController(IIdentityServerInteractionService interaction, IOptionsSnapshot<AppSettings> settings,IRedirectService redirectSvc)
|
|
{
|
|
_interaction = interaction;
|
|
_settings = settings;
|
|
_redirectSvc = redirectSvc;
|
|
}
|
|
|
|
public IActionResult Index(string returnUrl)
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public IActionResult ReturnToOriginalApplication(string returnUrl)
|
|
{
|
|
if (returnUrl != null)
|
|
return Redirect(_redirectSvc.ExtractRedirectUriFromReturnUrl(returnUrl));
|
|
else
|
|
return RedirectToAction("Index", "Home");
|
|
}
|
|
|
|
/// <summary>
|
|
/// Shows the error page
|
|
/// </summary>
|
|
public async Task<IActionResult> Error(string errorId)
|
|
{
|
|
var vm = new ErrorViewModel();
|
|
|
|
// retrieve error details from identityserver
|
|
var message = await _interaction.GetErrorContextAsync(errorId);
|
|
if (message != null)
|
|
{
|
|
vm.Error = message;
|
|
}
|
|
|
|
return View("Error", vm);
|
|
}
|
|
}
|
|
} |