@model Dpz.Core.Auth.Models.AccessDeniedViewModel
@{
ViewBag.Title = "无权访问";
Layout = null;
var appName = Model.Application?.DisplayName ?? "未知应用";
var clientLogo = Model.Application?.Properties?["Logo"]?.AsString;
var userName = Model.User?.Name ?? "当前用户";
var avatar = Model.User?.Avatar;
}
<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<title>无权访问 - 认证中心</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="@Url.Content("~/css/global.css")" asp-append-version="true"/>
</head>
<body class="consent-page">
<div class="container">
<div class="header">
<h1>访问被拒绝</h1>
<p>您暂时无法访问 <strong>@appName</strong></p>
</div>
<div class="consent-summary">
<div class="consent-summary-item">
<div class="consent-summary-label">当前账户</div>
<div class="consent-summary-value">
@if (!string.IsNullOrWhiteSpace(avatar))
{
<img src="@avatar" alt="@userName" class="consent-summary-avatar" loading="lazy"/>
}
<span>@userName</span>
</div>
</div>
<div class="consent-summary-item">
<div class="consent-summary-label">目标应用</div>
<div class="consent-summary-value">
@if (!string.IsNullOrWhiteSpace(clientLogo))
{
<img src="@clientLogo" alt="@appName" class="consent-summary-logo" loading="lazy"/>
}
<span>@appName</span>
</div>
</div>
</div>
@if(Model.HasPendingRequest)
{
<div class="info-message">
您已提交访问申请,请耐心等待管理员审核。
</div>
<div class="consent-actions">
<a class="secondary-button" href="@(Model.ReturnUrl ?? Url.Action("Index", "Home"))" style="width: 100%; text-align: center;">返回</a>
</div>
}
else
{
<div class="warning-message" style="margin-bottom: 24px;">
您的账户目前没有权限访问此应用。
</div>
<form method="post" asp-action="ApplyAccess" data-submit-loading="true">
<input type="hidden" name="clientId" value="@Model.Application?.ClientId" />
<input type="hidden" name="returnUrl" value="@Model.ReturnUrl" />
<div class="input-section">
<label for="reason" class="input-label">申请理由<span class="required">*</span></label>
<textarea class="textarea" id="reason" name="reason" rows="3" placeholder="请简要说明您需要访问此应用的理由..." required></textarea>
</div>
<div class="consent-actions">
<a class="secondary-button" href="@(Model.ReturnUrl ?? Url.Action("Index", "Home"))">取消</a>
<button type="submit" class="submit-button" data-loading-text="提交中...">申请权限</button>
</div>
@foreach (var item in Context.Request.Query)
{
if(item.Key != "returnUrl")
{
<input type="hidden" name="@item.Key" value="@item.Value" />
}
}
</form>
}
</div>
<script src="@Url.Content("~/js/ui-components.js")" asp-append-version="true"></script>
</body>
</html>