RMS.Manage.Web/Models/RMSAuthorizeAttribute.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Web;
using System.Web.Mvc;
using RMS.Manage.Web.Controllers;
using RMS.Common;
namespace RMS.Manage.Web.Controllers
{
public class RMSAuthorizeAttribute : System.Web.Mvc.AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
}
/// <summary>
/// 重写授权检查
/// </summary>
/// <param name="httpContext">Http内容</param>
/// <returns>是否授权</returns>
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//var nlog = LogManager.GetCurrentClassLogger();
#region 检测Action是否包含匿名访问标签
if (httpContext.AllowAsyncDuringSyncStages)
{
return true;
}
#endregion
#region httpContext验证
if (httpContext == null)
{
throw new ArgumentNullException("httpContext");
}
#endregion
#region 登录验证
IPrincipal user = httpContext.User;
if (!user.Identity.IsAuthenticated)
{
return false;
}
#endregion
#region 访问链接权限认证
string requestUrl = HttpContext.Current.Request.Url.AbsolutePath;//站点名+页面名
var virtualDirectory = ConfigHelper.GetAppValue("VirtualDirectory");
if (requestUrl.StartsWith(virtualDirectory))//如果有虚拟目录需要删除虚拟目录
{
requestUrl = requestUrl.Substring(virtualDirectory.Length);
}
#region 首页不进行权限认证
if (string.IsNullOrWhiteSpace(requestUrl))
{
return true;
}
requestUrl = "/" + requestUrl.Trim('/').ToLower();
if (requestUrl == "/" || requestUrl == "/home" || requestUrl == "/home/index" || requestUrl == "/index/default")
{
后面还有 68 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。