Skip to content
Snippets Groups Projects

Topic/231 or ci d integration

Merged Benedikt Heinrichs requested to merge Topic/231-ORCiDIntegration into Product/224-loginPage
13 files
+ 346
32
Compare changes
  • Side-by-side
  • Inline
Files
13
@@ -13,6 +13,8 @@ using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication;
using System.Threading.Tasks;
using System;
using Coscine.STS.Utils;
using System.Net;
namespace Coscine.STS.Controllers
{
@@ -21,34 +23,13 @@ namespace Coscine.STS.Controllers
[Route("[controller]/login")]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = ExtendReturnUrl(returnUrl);
ViewBag.ReturnUrl = UrlGenerator.ExtendReturnUrl(returnUrl, Request);
ViewBag.ORCiDUrl = ORCiDHandler.GetORCiDOAuthUrl() + UrlGenerator.ORCiDRedirectUrl();
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
ViewBag.AppJs = enc.GetString(Program.Configuration.GetAndWait("coscine/apps/login/appjs"));
return View();
}
private string ExtendReturnUrl(string returnUrl)
{
string retString = returnUrl;
if (!retString.Contains("?"))
{
retString += "?wa=wsignin1.0";
}
if(Request.Query["wtrealm"].Count != 0 && !retString.Contains("wtrealm="))
{
retString += "&wtrealm=" + Request.Query["wtrealm"][0];
}
if (Request.Query["wctx"].Count != 0 && !retString.Contains("wctx="))
{
retString += "&wctx=" + Request.Query["wctx"][0];
}
if (Request.Query["wreply"].Count != 0 && !retString.Contains("wreply="))
{
retString += "&wreply=" + Request.Query["wreply"][0];
}
return retString;
}
[HttpPost("[controller]/login")]
public async Task<ActionResult> Login(LoginModel model, string returnUrl)
{
@@ -60,10 +41,11 @@ namespace Coscine.STS.Controllers
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));
return Redirect(ExtendReturnUrl(returnUrl));
return Redirect(UrlGenerator.ExtendReturnUrl(returnUrl, Request));
}
ViewBag.ReturnUrl = ExtendReturnUrl(returnUrl);
ViewBag.ReturnUrl = UrlGenerator.ExtendReturnUrl(returnUrl, Request);
ViewBag.ORCiDUrl = ORCiDHandler.GetORCiDOAuthUrl() + UrlGenerator.ORCiDRedirectUrl();
ModelState.AddModelError("", "The userid provided is incorrect.");
return View(model);
}
Loading