diff --git a/projects/IoTCenter/Api/ProjectController.cs b/projects/IoTCenter/Api/ProjectController.cs index b6b2d27c..14dfe1c7 100644 --- a/projects/IoTCenter/Api/ProjectController.cs +++ b/projects/IoTCenter/Api/ProjectController.cs @@ -58,6 +58,30 @@ namespace IoTCenter.Api.Controllers this._userRoleRepo = userRoleRepo; } + [AllowAnonymous] + [HttpGet] + [Route("/Cas")] + public IActionResult Cas(string ticket) + { + var home = this._settingService.GetSetting("home")?.Value ?? "http://10.255.253.183"; + var sso = this._settingService.GetSetting("sso")?.Value ?? "http://10.255.253.190/dsssoserver"; + if (string.IsNullOrEmpty(ticket)) + {//跳转到cas + var url = sso + "/login?service=" + HttpUtility.UrlEncode(home); + return Redirect(url); + } + else + { + var url = sso + "/serviceValidate?ticket=" + ticket + "&service=" + HttpUtility.UrlEncode(home); + var httpClient = this._httpClientFactory.CreateClient(); + var result = httpClient.GetAsync(url).Result.Content.ReadAsStringAsync().Result; + var userName = this.NeiMengWuHai(result); + home += "?accessToken=" + Request.HttpContext.GetToken(userName, _cfg, DateTime.Now.AddYears(100)); + home += "&refreshToken=" + Request.HttpContext.GetToken(userName, _cfg, DateTime.Now.AddYears(100)); + return Redirect(home); + } + } + [AllowAnonymous] [HttpGet] public IActionResult CasLogin(string ticket, string home) @@ -89,7 +113,7 @@ namespace IoTCenter.Api.Controllers //d_wudaqu 300348 5LmM6L6+5Yy6566h55CG5ZGY 15785 d_wudaqu 5LmM6L6+5Yy65pWZ6IKy5bGA 5 63,12,335 var doc = new XmlDocument(); doc.LoadXml(result); - var userName = doc.GetElementsByTagName("cas:USER_NAME")[0].InnerText.Trim(); + var userName = doc.GetElementsByTagName("cas:USER_NAME")[0].InnerText.Trim(); var personId = Convert.ToInt32(doc.GetElementsByTagName("cas:PERSON_ID")[0].InnerText.Trim()); var connStr = this._cfg.GetConnectionString("mariyadb"); try @@ -153,7 +177,7 @@ namespace IoTCenter.Api.Controllers organUser = new OrganUser { UserId = user.Id, OrganId = organ.Id }; this._organUserRepo.SaveChanges(); } - + if (roles.Any()) { foreach (var item in roles) @@ -276,9 +300,10 @@ namespace IoTCenter.Api.Controllers public IActionResult RedirectTo(string url) { - Response.Headers.Remove("Referer"); - return Redirect(url); + Response.Redirect(url); + return new EmptyResult(); } + public string Test() { var connStr = this._cfg.GetConnectionString("mariyadb"); @@ -288,7 +313,7 @@ namespace IoTCenter.Api.Controllers using var db = new BaseDbContext(connStr); var user = db.Set().FirstOrDefault(o => o.Id == personId); var organ = db.Set().FirstOrDefault(o => o.OrganId == user.BureauId); - var roles = (from perssonRole in db.Set().Where(o=>o.PersonId==user.Id) + var roles = (from perssonRole in db.Set().Where(o => o.PersonId == user.Id) join role in db.Set() on perssonRole.RoleId equals role.Id select role.RoleName).Distinct().ToList(); return connStr + user.RealName + organ.Name + roles.ToJson(); diff --git a/projects/IoTCenter/IoTCenter.csproj b/projects/IoTCenter/IoTCenter.csproj index a5c7fc74..2b2d340a 100644 --- a/projects/IoTCenter/IoTCenter.csproj +++ b/projects/IoTCenter/IoTCenter.csproj @@ -4,7 +4,7 @@ Zh-CN true true - 1.1.0.5 + 1.1.0.9 ..\docker-compose.dcproj Linux 01c763b3-e889-4317-a299-82524d5357ce diff --git a/projects/IoTCenter/appsettings.json b/projects/IoTCenter/appsettings.json index ed66792c..5eb0e70c 100644 --- a/projects/IoTCenter/appsettings.json +++ b/projects/IoTCenter/appsettings.json @@ -87,6 +87,7 @@ "pwd": "admin" }, "SSO": { + "home": "http://10.255.253.183", "url": "http://221.194.113.154:8100/wsdl/EMIIS_WS/webServer/dataEX_share", "user": "wulianwang", "login": "2020-11-16", diff --git a/projects/WebMVC/Startup.cs b/projects/WebMVC/Startup.cs index e771da40..92c4c27e 100644 --- a/projects/WebMVC/Startup.cs +++ b/projects/WebMVC/Startup.cs @@ -41,8 +41,6 @@ namespace WebMVC app.UseFileServer(); - app.UseSpaStaticFiles(); - app.UseRouting(); app.UseAuthorization();