mirror of https://github.com/abpframework/abp.git
3 changed files with 49 additions and 64 deletions
@ -0,0 +1,49 @@ |
|||
using System.Threading.Tasks; |
|||
using IdentityServer4.Models; |
|||
using IdentityServer4.Services; |
|||
using Microsoft.AspNetCore.Hosting; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Microsoft.Extensions.Hosting; |
|||
using Volo.Abp.AspNetCore.Mvc; |
|||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Views.Error; |
|||
using Volo.Abp.Http; |
|||
|
|||
namespace Volo.Abp.Account.Web.Controllers |
|||
{ |
|||
[Area("account")] |
|||
public class ErrorController : AbpController |
|||
{ |
|||
private readonly IIdentityServerInteractionService _interaction; |
|||
private readonly IWebHostEnvironment _environment; |
|||
|
|||
public ErrorController( |
|||
IIdentityServerInteractionService interaction, |
|||
IWebHostEnvironment environment) |
|||
{ |
|||
_interaction = interaction; |
|||
_environment = environment; |
|||
} |
|||
|
|||
public async Task<IActionResult> Index(string errorId) |
|||
{ |
|||
var errorMessage = await _interaction.GetErrorContextAsync(errorId) ?? new ErrorMessage |
|||
{ |
|||
Error = L["Error"] |
|||
}; |
|||
|
|||
if (!_environment.IsDevelopment()) |
|||
{ |
|||
// Only show in development
|
|||
errorMessage.ErrorDescription = null; |
|||
} |
|||
|
|||
|
|||
// ReSharper disable once Mvc.ViewNotResolved
|
|||
return View("~/Views/Error/Default.cshtml", new AbpErrorViewModel |
|||
{ |
|||
ErrorInfo = new RemoteServiceErrorInfo(errorMessage.Error, errorMessage.ErrorDescription), |
|||
HttpStatusCode = 500 |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
@ -1,24 +0,0 @@ |
|||
@page |
|||
@using Localization.Resources.AbpUi |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@model Volo.Abp.Account.Web.Pages.Account.ErrorModel |
|||
@inject IHtmlLocalizer<AbpUiResource> L |
|||
@{ |
|||
var errorMessage = Model.ErrorMessage.Error; |
|||
var errorDetails = Model.ErrorMessage.ErrorDescription; |
|||
if (errorDetails.IsNullOrEmpty()) |
|||
{ |
|||
errorDetails = errorMessage; |
|||
errorMessage = L["Error"].Value + "!"; |
|||
} |
|||
} |
|||
|
|||
<h1> |
|||
@errorMessage |
|||
</h1> |
|||
|
|||
<div> |
|||
<p> |
|||
@errorDetails |
|||
</p> |
|||
</div> |
|||
@ -1,40 +0,0 @@ |
|||
using System.Threading.Tasks; |
|||
using IdentityServer4.Models; |
|||
using IdentityServer4.Services; |
|||
using Microsoft.AspNetCore.Hosting; |
|||
using Microsoft.Extensions.Hosting; |
|||
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; |
|||
|
|||
namespace Volo.Abp.Account.Web.Pages.Account |
|||
{ |
|||
public class ErrorModel : AbpPageModel |
|||
{ |
|||
public ErrorMessage ErrorMessage { get; set; } |
|||
|
|||
private readonly IIdentityServerInteractionService _interaction; |
|||
private readonly IWebHostEnvironment _environment; |
|||
|
|||
public ErrorModel(IIdentityServerInteractionService interaction, IWebHostEnvironment environment) |
|||
{ |
|||
_interaction = interaction; |
|||
_environment = environment; |
|||
} |
|||
|
|||
public async Task OnGet(string errorId) |
|||
{ |
|||
ErrorMessage = await _interaction.GetErrorContextAsync(errorId) ?? new ErrorMessage |
|||
{ |
|||
Error = L["Error"] |
|||
}; |
|||
|
|||
if (ErrorMessage != null) |
|||
{ |
|||
if (!_environment.IsDevelopment()) |
|||
{ |
|||
// Only show in development
|
|||
ErrorMessage.ErrorDescription = null; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue