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);
}
}
}