Example #1
0
        public IActionResult Index(string serviceName, string actionName)
        {
            Type serviceType = ServiceManager.GetServiceType(serviceName);

            if (serviceType == null)
            {
                throw new CoreException("服务未注册");
            }

            string paramValue           = Session.GetParam("cmd");
            IApplicationService service = ServiceProvider.GetService(serviceType) as IApplicationService;

            if (service == null)
            {
                throw new CoreException("未获取到服务");
            }

            IServiceSecurity sercurity = ServiceProvider.GetService <IServiceSecurity>();

            if (!sercurity.CanAccess(Session.UserId ?? -1, serviceName, actionName))
            {
                throw new SecurityException($"服务动作{serviceName}.{actionName}的访问未被许可!");
            }

            var result = ServiceManager.ExecuteService(serviceName, actionName, service, paramValue);

            return(new JsonResult(new { status = 0, message = "success", serviceName = serviceName, actionName = actionName, result = result }));
        }
 public Service(IServiceSecurity serviceSecurity, IDeserialize deserialize, ISerialize serialize)
 {
     this.serviceSecurity = serviceSecurity;
     this.deserialize     = deserialize;
     this.serialize       = serialize;
 }