/// <summary> /// 重写以实现从方法信息中创建功能信息 /// </summary> /// <param name="typeFunction">类功能信息</param> /// <param name="method">方法信息</param> /// <returns></returns> protected override Function GetFunction(Function typeFunction, MethodInfo method) { Check.NotNull(typeFunction, nameof(typeFunction)); Check.NotNull(method, nameof(method)); FunctionAccessType accessType = method.HasAttribute <LoggedInAttribute>() ? FunctionAccessType.LoggedIn : method.HasAttribute <AllowAnonymousAttribute>() ? FunctionAccessType.Anonymous : method.HasAttribute <RoleLimitAttribute>() ? FunctionAccessType.RoleLimit : typeFunction.AccessType; Function function = new Function() { Name = $"{typeFunction.Name}-{method.GetDescription()}", Area = typeFunction.Area, Controller = typeFunction.Controller, Action = method.Name, AccessType = accessType, IsController = false, IsAjax = method.HasAttribute <AjaxOnlyAttribute>() }; return(function); }
/// <summary> /// 重写以实现从功能类型创建功能信息 /// </summary> /// <param name="controllerType">功能类型</param> /// <returns></returns> protected override Function GetFunction(Type controllerType) { if (!controllerType.IsController()) { throw new HybridException($"类型“{controllerType.FullName}”不是MVC控制器类型"); } FunctionAccessType accessType = controllerType.HasAttribute <LoggedInAttribute>() ? FunctionAccessType.LoggedIn : controllerType.HasAttribute <RoleLimitAttribute>() ? FunctionAccessType.RoleLimit : FunctionAccessType.Anonymous; Function function = new Function() { Name = controllerType.GetDescription(), Area = GetArea(controllerType), Controller = controllerType.Name .Replace("ControllerBase", string.Empty) .Replace("Controller", string.Empty) .Replace("`1", string.Empty) .Replace("`2", string.Empty), IsController = true, IsWebApi = controllerType.BaseType.HasAttribute <ApiControllerAttribute>(), AccessType = accessType }; return(function); }
/// <summary> /// 重写以实现从方法信息中创建功能信息 /// </summary> /// <param name="typeFunction">类功能信息</param> /// <param name="method">方法信息</param> /// <returns></returns> protected override Function GetFunction(Function typeFunction, MethodInfo method) { FunctionAccessType accessType = method.HasAttribute <LoggedInAttribute>() || method.HasAttribute <AuthorizeAttribute>() ? FunctionAccessType.LoggedIn : method.HasAttribute <AllowAnonymousAttribute>() ? FunctionAccessType.Anonymous : method.HasAttribute <RoleLimitAttribute>() ? FunctionAccessType.RoleLimit : typeFunction.AccessType; var source = options.LocalOption.AppKey; Function function = new Function() { Source = source, IsWebApi = typeFunction.IsWebApi, Name = $"{typeFunction.Name}-{method.GetDescription()}", Area = typeFunction.Area, Controller = typeFunction.Controller, Action = method.Name, AccessType = accessType, IsController = false, }; return(function); }
/// <summary> /// 重写以实现从功能类型创建功能信息 /// </summary> /// <param name="controllerType">功能类型</param> /// <returns></returns> protected override Function GetFunction(Type controllerType) { if (!controllerType.IsController()) { throw new TomNetException($"类型“{controllerType.FullName}”不是MVC控制器类型"); } FunctionAccessType accessType = controllerType.HasAttribute <LoggedInAttribute>() || controllerType.HasAttribute <AuthorizeAttribute>() ? FunctionAccessType.LoggedIn : controllerType.HasAttribute <RoleLimitAttribute>() ? FunctionAccessType.RoleLimit : FunctionAccessType.Anonymous; bool isApi = controllerType.HasAttribute <ApiControllerAttribute>(); var source = options.LocalOption.AppKey; Function function = new Function() { Source = source, IsWebApi = isApi, Name = controllerType.GetDescription(), Area = GetArea(controllerType), Controller = controllerType.Name.Replace("ControllerBase", string.Empty).Replace("Controller", string.Empty), IsController = true, AccessType = accessType }; return(function); }
/// <summary> /// 重写以实现从方法信息中创建功能信息 /// </summary> /// <param name="typeFunction">类功能信息</param> /// <param name="method">方法信息</param> /// <returns></returns> protected override Function GetFunction(Function typeFunction, MethodInfo method) { FunctionAccessType accessType = method.HasAttribute <LoginedAttribute>() || method.HasAttribute <AuthorizeAttribute>() ? FunctionAccessType.Logined : method.HasAttribute <AllowAnonymousAttribute>() ? FunctionAccessType.Anonymouse : method.HasAttribute <RoleLimitAttribute>() ? FunctionAccessType.RoleLimit : typeFunction.AccessType; Function function = new Function() { Name = $"{typeFunction.Name}-{method.GetDescription()}", Area = typeFunction.Area, Controller = typeFunction.Controller, Action = method.Name, AccessType = accessType, IsController = false, IsAjax = method.HasAttribute <AjaxOnlyAttribute>() }; return(function); }
/// <summary> /// 重写以实现从功能类型创建功能信息 /// </summary> /// <param name="controllerType">功能类型</param> /// <returns></returns> protected override Function GetFunction(Type controllerType) { if (!controllerType.IsController()) { throw new OsharpException($"类型“{controllerType.FullName}”不是MVC控制器类型"); } FunctionAccessType accessType = controllerType.HasAttribute <LoginedAttribute>() || controllerType.HasAttribute <AuthorizeAttribute>() ? FunctionAccessType.Logined : controllerType.HasAttribute <RoleLimitAttribute>() ? FunctionAccessType.RoleLimit : FunctionAccessType.Anonymouse; Function function = new Function() { Name = controllerType.GetDescription(), Area = GetArea(controllerType), Controller = controllerType.Name.Replace("Controller", string.Empty), IsController = true, AccessType = accessType }; return(function); }