Преглед на файлове

接口适应token验证

shengxuefei преди 4 години
родител
ревизия
1fd222054a

Файловите разлики са ограничени, защото са твърде много
+ 1015 - 0
PMS.NetCore/.vs/PMS.NetCore/config/applicationhost.config


+ 16 - 0
PMS.NetCore/PMS.NetCore.Enties/DTO/SingleParamDTO.cs

@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Sugar.Enties
+{
+    public class SingleParamDTO
+    {
+        /// <summary>
+        /// string值
+        /// </summary>
+        public string value { get; set; }
+    }
+}

+ 24 - 13
PMS.NetCore/PMS.NetCore/Controllers/UserController.cs

@@ -17,6 +17,7 @@ using Utils;
 using System.Collections.Specialized;
 using System.Security.Cryptography;
 using System.IO;
+using Newtonsoft.Json.Linq;
 
 namespace PMS.NetCore.Controllers
 {
@@ -63,7 +64,17 @@ namespace PMS.NetCore.Controllers
             _configuration = configuration;
             tokenHelper = _tokenHelper;
         }
-
+        /// <summary>
+        /// 测试方法
+        /// </summary>
+        /// <returns></returns>
+        [AllowAnonymous]
+        [HttpGet]
+        [Route("Test")]
+        public JsonResult Test()
+        {
+            return Json("success");
+        }
         /// <summary>
         /// 用户登录
         /// </summary>
@@ -160,11 +171,11 @@ namespace PMS.NetCore.Controllers
         /// <returns></returns>
         [HttpPost]
         [Route("GetRoles")]
-        public JsonResult GetRoles(string staffcode)
+        public JsonResult GetRoles([FromBody] SingleParamDTO staffcode)
         {
-            logger.Info($"【GetRoles】staffcode:{staffcode}");
+            logger.Info($"【GetRoles】staffcode:{JsonConvert.SerializeObject(staffcode)}");
             //获取用户的所有角色
-            var rolesList = new rolesManager().GetRoles(staffcode);
+            var rolesList = new rolesManager().GetRoles(staffcode.value);
             logger.Info($"【GetRoles】rolesList:{JsonConvert.SerializeObject( rolesList)}");
             return Json(rolesList);
         }
@@ -175,11 +186,11 @@ namespace PMS.NetCore.Controllers
         /// <returns></returns>
         [HttpPost]
         [Route("GetPrintfiles")]
-        public JsonResult GetPrintfiles(string staffcode)
+        public JsonResult GetPrintfiles([FromBody] SingleParamDTO staffcode)
         {
-            logger.Info($"【GetPrintfiles】staffcode:{staffcode}");
+            logger.Info($"【GetPrintfiles】staffcode:{JsonConvert.SerializeObject(staffcode)}");
             //获取打印权限
-            var printList = new rolesManager().GetPrintfiles(staffcode);
+            var printList = new rolesManager().GetPrintfiles(staffcode.value);
             logger.Info($"【GetPrintfiles】printList:{JsonConvert.SerializeObject(printList)}");
             return Json(printList);
         }
@@ -190,11 +201,11 @@ namespace PMS.NetCore.Controllers
         /// <returns></returns>
         [HttpPost]
         [Route("GetMsgtypes")]
-        public JsonResult GetMsgtypes(string staffcode)
+        public JsonResult GetMsgtypes([FromBody] SingleParamDTO staffcode)
         {
-            logger.Info($"【GetMsgtypes】staffcode:{staffcode}");
+            logger.Info($"【GetMsgtypes】staffcode:{JsonConvert.SerializeObject(staffcode)}");
             //获取打印权限
-            var msgList = new rolesManager().GetMsgtypes(staffcode);
+            var msgList = new rolesManager().GetMsgtypes(staffcode.value);
             logger.Info($"【GetMsgtypes】msgList:{JsonConvert.SerializeObject(msgList)}");
             return Json(msgList);
         }
@@ -206,11 +217,11 @@ namespace PMS.NetCore.Controllers
         /// <returns></returns>
         [HttpPost]
         [Route("GetFuncs")]
-        public JsonResult GetFuncs(string roleid)
+        public JsonResult GetFuncs([FromBody] SingleParamDTO roleid)
         {
-            logger.Info($"【GetFuncs】roleid:{roleid}");
+            logger.Info($"【GetFuncs】roleid:{JsonConvert.SerializeObject(roleid)}");
             //获取打印权限
-            var List = new rolesManager().GetFuncs(roleid);
+            var List = new rolesManager().GetFuncs(roleid.value);
             logger.Info($"【GetFuncs】List:{JsonConvert.SerializeObject(List)}");
             return Json(List);
         }

+ 10 - 4
PMS.NetCore/PMS.NetCore/PMS.NetCore.xml

@@ -30,6 +30,12 @@
             <param name="_tokenHelper"></param>
             <param name="configuration"></param>
         </member>
+        <member name="M:PMS.NetCore.Controllers.UserController.Test">
+            <summary>
+            测试方法
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:PMS.NetCore.Controllers.UserController.ValidateUser(Sugar.Enties.UserLoginDTO)">
             <summary>
             用户登录
@@ -37,28 +43,28 @@
             <param name="request">用户名,密码</param>
             <returns></returns>
         </member>
-        <member name="M:PMS.NetCore.Controllers.UserController.GetRoles(System.String)">
+        <member name="M:PMS.NetCore.Controllers.UserController.GetRoles(Sugar.Enties.SingleParamDTO)">
             <summary>
             根据用户编号获取用户所有角色
             </summary>
             <param name="staffcode">用户编号</param>
             <returns></returns>
         </member>
-        <member name="M:PMS.NetCore.Controllers.UserController.GetPrintfiles(System.String)">
+        <member name="M:PMS.NetCore.Controllers.UserController.GetPrintfiles(Sugar.Enties.SingleParamDTO)">
             <summary>
             根据用户编号获取打印权限
             </summary>
             <param name="staffcode"></param>
             <returns></returns>
         </member>
-        <member name="M:PMS.NetCore.Controllers.UserController.GetMsgtypes(System.String)">
+        <member name="M:PMS.NetCore.Controllers.UserController.GetMsgtypes(Sugar.Enties.SingleParamDTO)">
             <summary>
             根据用户编号获取用户消息语句权限
             </summary>
             <param name="staffcode"></param>
             <returns></returns>
         </member>
-        <member name="M:PMS.NetCore.Controllers.UserController.GetFuncs(System.String)">
+        <member name="M:PMS.NetCore.Controllers.UserController.GetFuncs(Sugar.Enties.SingleParamDTO)">
             <summary>
             根据角色ID获取用户功能模块权限
             </summary>

+ 8 - 9
PMS.NetCore/PMS.NetCore/Properties/launchSettings.json

@@ -1,13 +1,13 @@
-{
-  "$schema": "http://json.schemastore.org/launchsettings.json",
+{
   "iisSettings": {
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
     "iisExpress": {
-      "applicationUrl": "http://localhost:8300",
-      "sslPort": 44302
+      "applicationUrl": "http://localhost:51214/",
+      "sslPort": 44383
     }
   },
+  "$schema": "http://json.schemastore.org/launchsettings.json",
   "profiles": {
     "IIS Express": {
       "commandName": "IISExpress",
@@ -19,14 +19,13 @@
     },
     "PMS.NetCore": {
       "commandName": "Project",
-      "dotnetRunMessages": "true",
       "launchBrowser": true,
       "launchUrl": "swagger",
-      //"applicationUrl": "https://localhost:5001;http://localhost:5000",
-      "applicationUrl": "http://localhost:5000",
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
-      }
+      },
+      "dotnetRunMessages": "true",
+      "applicationUrl": "http://localhost:5000"
     }
   }
-}
+}

+ 8 - 8
PMS.NetCore/Utils/Jwt/TokenHelper.cs

@@ -99,9 +99,9 @@ namespace Utils.Jwt
                 return false;
             }
             var header = JsonConvert.DeserializeObject<Dictionary<string, string>>(Base64UrlEncoder.Decode(jwtArr[0]));
-            logger.Info($"header:{header}");
+            //logger.Info($"header:{header}");
             var payLoad = JsonConvert.DeserializeObject<Dictionary<string, string>>(Base64UrlEncoder.Decode(jwtArr[1]));
-            logger.Info($"payLoad:{payLoad}");
+            //logger.Info($"payLoad:{payLoad}");
             //配置文件中取出来的签名秘钥
             var hs256 = new HMACSHA256(Encoding.ASCII.GetBytes(_options.Value.IssuerSigningKey));
             //验证签名是否正确(把用户传递的签名部分取出来和服务器生成的签名匹配即可)
@@ -148,18 +148,18 @@ namespace Utils.Jwt
                 return TokenType.Fail;
             }
             var header = JsonConvert.DeserializeObject<Dictionary<string, string>>(Base64UrlEncoder.Decode(jwtArr[0]));
-            logger.Info($"header:{Base64UrlEncoder.Decode(jwtArr[0])}");
+            //logger.Info($"header:{Base64UrlEncoder.Decode(jwtArr[0])}");
             var payLoad = JsonConvert.DeserializeObject<Dictionary<string, string>>(Base64UrlEncoder.Decode(jwtArr[1]));
-            logger.Info($"payLoad:{Base64UrlEncoder.Decode(jwtArr[1])}");
+            //logger.Info($"payLoad:{Base64UrlEncoder.Decode(jwtArr[1])}");
             var hs256 = new HMACSHA256(Encoding.ASCII.GetBytes(_options.Value.IssuerSigningKey));
-            logger.Info($"jwtArr[2]:{jwtArr[2]}");
+            //logger.Info($"jwtArr[2]:{jwtArr[2]}");
 
             var str = Base64UrlEncoder.Encode(hs256.ComputeHash(Encoding.UTF8.GetBytes(string.Concat(jwtArr[0], ".", jwtArr[1]))));
-            logger.Info($"str:{str}");
+            //logger.Info($"str:{str}");
             //验证签名是否正确(把用户传递的签名部分取出来和服务器生成的签名匹配即可)
             if (!string.Equals(jwtArr[2], str))
             {
-                logger.Info($"TokenType:{TokenType.Fail}");
+                //logger.Info($"TokenType:{TokenType.Fail}");
                 return TokenType.Fail;
             }
             //其次验证是否在有效期内(必须验证)
@@ -178,7 +178,7 @@ namespace Utils.Jwt
             //再其次 进行自定义的验证
             if (!validatePayLoad(payLoad))
             {
-                logger.Info($"validatePayLoad");
+                //logger.Info($"validatePayLoad");
                 return TokenType.Fail;
             }
             //可能需要获取jwt摘要里边的数据,封装一下方便使用