OL.FrameCore.WebUI/Code/AuthAttribute.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.DependencyInjection;
using NLog;
using OL.FrameCore.Application;
using OL.FrameCore.Application.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
namespace OL.FrameCore.WebUI.Code
{
public class AuthAttribute : Attribute, IActionFilter
{
//ILogger logger = LogManager.GetCurrentClassLogger();
//private readonly IHttpContextAccessor _httpContextAccessor;
//IUserService _userService;
public string AuthCode { get; set; }
public AuthAttribute(string authCode)
{
AuthCode = authCode;
//_httpContextAccessor = httpContextAccessor;
//_userService = userService;
//IServiceProvider _serviceProvider;
//_userService = (IUserService)serviceProvider.CreateScope().ServiceProvider.GetService(typeof(IUserService));
}
public void OnActionExecuting(ActionExecutingContext context)
{
IServiceProvider serviceProvider = context.HttpContext.RequestServices;
IUserService userService = (IUserService)serviceProvider.CreateScope().ServiceProvider.GetService(typeof(IUserService));
//判断权限
var user = context.HttpContext.User;
var claim = user.Claims.Where(c => c.Type == ClaimTypes.Sid).Single();
int userId = int.Parse(claim.Value);
bool isHadPermission = userService.HasPermission(userId, AuthCode);
if (!isHadPermission)
{
//401
if (IsAjaxRequest(context.HttpContext.Request))
{
context.Result = new JsonResult(new Result
{
State = 0,
Msg = "无权限"
});
}
else
{
context.HttpContext.Response.StatusCode = 401;
后面还有 26 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
