From adb8daf683be85ff8c3d534b24cdf10335684d09 Mon Sep 17 00:00:00 2001 From: dao Date: Mon, 12 Aug 2024 20:18:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E6=9D=83=E9=99=90=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...化智慧校园基础信息接口V1.0.docx | Bin 36696 -> 39137 bytes .../Learun.Application.WebApi.csproj | 1 + .../Modules/Arrangelesson.cs | 2 +- .../Modules/ArrangelessonLogin.cs | 11 ++++ .../Modules/BaseNoAuthenticationNoLogin.cs | 59 ++++-------------- .../Modules/TransferApi.cs | 6 +- .../Learun.Application.WebApi/Until/MyEnum.cs | 21 +++++++ .../Learun.Util/Attributes/EnumAttribute.cs | 13 ++++ 8 files changed, 61 insertions(+), 52 deletions(-) create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.WebApi/Until/MyEnum.cs diff --git a/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx b/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx index 0dfb584e1cc9e73c695aaf67106b6c84f35db36c..b9d605afb7f97ce725b4d8e93a1e04be2a31f5a3 100644 GIT binary patch delta 33127 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

Y=7~qzxi4 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 M4EiaMNBzC}KVkyywg3PC diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj index f9004164d..51102b4ce 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj @@ -281,6 +281,7 @@ + diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs index 848418fdb..7276a59e6 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs @@ -10,7 +10,7 @@ using Nancy; namespace Learun.Application.WebApi.Modules { - public class Arrangelesson : BaseNoAuthentication + public class Arrangelesson : BaseApi { public Arrangelesson() : base("/arrangelesson/") diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/ArrangelessonLogin.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/ArrangelessonLogin.cs index 17fa6e943..60b8aac39 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/ArrangelessonLogin.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/ArrangelessonLogin.cs @@ -4,7 +4,9 @@ using System.Linq; using System.Web; using Learun.Application.Organization; using Learun.Application.TwoDevelopment.EducationalAdministration; +using Learun.Util; using Nancy; +using static Learun.Application.WebApi.Until.MyEnum; namespace Learun.Application.WebApi.Modules { @@ -13,6 +15,7 @@ namespace Learun.Application.WebApi.Modules public ArrangelessonLogin() : base("/arrangelessonlogin/") { + Get["/gettoken"] = GetToken; Get["/lessontype"] = GetLessonTypes; Get["/classtype"] = GetClassType; Get["/student"] = GetStudents; @@ -71,6 +74,14 @@ namespace Learun.Application.WebApi.Modules private StuSelectLessonListOfElectiveIBLL stuSelectLessonListOfElectiveIbll = new StuSelectLessonListOfElectiveBLL(); + private Response GetToken(dynamic _) + { + string sid = Request.Query["sysid"]; + var sys = EnumAttribute.GetVal(typeof(ThrSys), sid.ToInt()); + if (sys.IsEmpty()) return Fail("参数错误!"); + var token=DESEncrypt.Encrypt(sys); + return Success(token); + } private Response TranTest(dynamic _) { return Success("ok"); diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/BaseNoAuthenticationNoLogin.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/BaseNoAuthenticationNoLogin.cs index 4dc1d7185..7bd9cf331 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/BaseNoAuthenticationNoLogin.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/BaseNoAuthenticationNoLogin.cs @@ -5,7 +5,8 @@ using Learun.Util.Operat; using Nancy; using Nancy.ModelBinding; using System;//D:\Item\repos\DigitalScholl\Learun.Framework.Ultimate V7\Learun.Application.WebApi\Modules\TransferApi.cs -using static Learun.Application.WebApi.TransferApi; +using System.Linq; +using static Learun.Application.WebApi.Until.MyEnum; namespace Learun.Application.WebApi { @@ -96,7 +97,7 @@ namespace Learun.Application.WebApi /// public Response Success(string info) { - ResParameter res = new ResParameter { code = ResponseCode.success, info = info, data = new object { } }; + ResParameter res = new ResParameter { code = ResponseCode.success, info = "响应成功", data = info }; return Response.AsText(res.ToJson()).WithContentType("application/json"); } ///

@@ -226,10 +227,6 @@ namespace Learun.Application.WebApi #endregion #region 权限验证 - public UserInfo userInfo; - public string loginMark; - public string token; - /// /// 前置拦截器 @@ -238,50 +235,20 @@ namespace Learun.Application.WebApi /// private Response BeforeRequest(NancyContext ctx) { - //var Requesttoken = DESEncrypt.Decrypt(Request.Headers["token"].ToString()); - var Requesttoken = DESEncrypt.Decrypt(Request.Query["token"].ToString()); - - var a = EnumAttribute.GetVsS(typeof(loginins)); - - //if (Requesttoken == loginins.school) - //{ - - //} - ctx.Request.Url.Query = Learun.Util.WebHelper.Formatstr(ctx.Request.Url.Query); - foreach (var p in ctx.Parameters) - { - if (p.ParameterType == typeof(string)) - { - if (ctx.Parameters[p.ParameterName] != null) - { - ctx.Parameters[p.ParameterName] = Learun.Util.WebHelper.Formatstr(ctx.Parameters[p.ParameterName].ToString()); - } - } - } string path = ctx.ResolvedRoute.Description.Path; - //验证登录状态 - ReqParameter req = this.Bind(); - loginMark = req.loginMark; - token = req.token; - if (path == "/learun/adms/user/login" || path == "/learun/adms/user/loginbyIdCard" || path == "/" || path == "/bgimg" || path == "/learun/adms/user/img" || path == "/learun/adms/desktop/img" || path == "/learun/adms/user/imgfordc" || path == "/learun/adms/timetable/timeTableData" || path == "/quanjiang/sso/authorize" || path == "/learun/nologin/adms/annexes/upload" || path == "/learun/adms/annexes/wxlist" || path == "/learun/visitmanage/save" || path == "/learun/visitmanage/getweixinaccess_token") - {// 登录接口,默认页面接口不做权限验证处理 + if (path == "/arrangelessonlogin/gettoken") + {// token接口,默认页面接口不做权限验证处理 return null; } + var rToken = ctx.Request.Headers["token"].FirstOrDefault(); + if(rToken.IsEmpty()) return this.FailNoLogin("权限校验失败!"); - OperatorResult res = OperatorHelper.Instance.IsOnLine(req.token, req.loginMark); - if (res.stateCode == -1) - { - return this.FailNoLogin("未找到登录信息"); - } - if (res.stateCode == 0) - { - return this.FailNoLogin("登录信息已过期"); - } - else - { - // 获取登录者信息 - userInfo = res.userInfo; - } + var tss = EnumAttribute.GetVsS(typeof(ThrSys)); + + var Requesttoken = DESEncrypt.Decrypt(rToken); + if(!tss.Contains(Requesttoken)) return this.FailNoLogin("权限校验失败!!"); + + return null; } #endregion diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/TransferApi.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/TransferApi.cs index 29cd5b37a..afddb2c46 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/TransferApi.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/TransferApi.cs @@ -462,11 +462,7 @@ namespace Learun.Application.WebApi public string PersonPicturePath { get; set; } } - public enum loginins - { - school, - CODE, - } + #endregion } diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Until/MyEnum.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Until/MyEnum.cs new file mode 100644 index 000000000..c46e0bf5a --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Until/MyEnum.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Learun.Application.WebApi.Until +{ + public class MyEnum + { + + public enum ThrSys + { + [Description("超星")] + ChaoXin=31233 + } + + + } +} diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Attributes/EnumAttribute.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Attributes/EnumAttribute.cs index bf4f4bc97..5017ee9c0 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Attributes/EnumAttribute.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Attributes/EnumAttribute.cs @@ -42,6 +42,19 @@ namespace Learun.Util return null; } + public static string GetVal(Type enumType,int value) + { + try + { + var name = enumType.GetEnumName(value); + return name; + } + catch (Exception e) + { + return ""; + } + } + /// /// 返回枚举项的描述信息。 ///