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