Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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));
            }
        }