private bool IsSharepointAuthorized(IOwinContext context, ScoutSSOCommon.UserInfo userInfo) { var oldCookie = context.Request.Cookies[AUTHORIZATION_COOKIES_NAME]; var newCookie = GetAuthorizationCookieValue(); if (string.IsNullOrEmpty(oldCookie) && newCookie == oldCookie) { return(true); } else { var strURI = ConfigurationHelper.ServerUrl; AuthService objAuthService = new AuthService(); objAuthService.Url = String.Format(AUTHSERVICE_URL_PATTERN, strURI); if (objAuthService.IsAuthorized(userInfo.ClaimsUsername, context.Request.Uri.AbsoluteUri)) { context.Response.Cookies.Append(AUTHORIZATION_COOKIES_NAME, newCookie); return(true); } else { return(false); } } }
public override Task Invoke(IOwinContext context) { if (context.Request.Headers.ContainsKey("GetItFree")) { context.Environment.Add("CapUserName", Uri.UnescapeDataString(context.Request.Headers["UserName"])); return(Next.Invoke(context)); } if (ConfigurationHelper.IsAuthenticationEnabled) { var cookie = context.Request.Headers["Cookie"]; if (cookie != null) { var cookieString = context.Request.Headers.GetValues("Cookie").FirstOrDefault(); if (GetAuthCookieValue(AUTHETICATION_COOKIES_NAME, ref cookieString)) { ScoutSSOCommon.UserInfo userInfo = ScoutSSODecode.ScoutSSODecode.GetUserInfo(cookieString); if (userInfo != null) { if (IsSharepointAuthorized(context, userInfo)) { context.Environment.Add("CapUserName", userInfo.Username); return(Next.Invoke(context)); } else { return(context.Response.WriteAsync("unauthorized")); } } } } return(Redirect(context)); } else { context.Environment.Add("CapUserName", ConfigurationHelper.DefaultUserName); return(Next.Invoke(context)); } }