|
|
|
@ -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<Person>().FirstOrDefault(o => o.Id == personId);
|
|
|
|
|
var organ = db.Set<Organization>().FirstOrDefault(o => o.OrganId == user.BureauId);
|
|
|
|
|
var roles = (from perssonRole in db.Set<PersonRole>().Where(o=>o.PersonId==user.Id)
|
|
|
|
|
var roles = (from perssonRole in db.Set<PersonRole>().Where(o => o.PersonId == user.Id)
|
|
|
|
|
join role in db.Set<SystemRole>() on perssonRole.RoleId equals role.Id
|
|
|
|
|
select role.RoleName).Distinct().ToList();
|
|
|
|
|
return connStr + user.RealName + organ.Name + roles.ToJson();
|
|
|
|
|