AzureFunctions.Authentication.LocalhostAuthProvider.ReadOAuthTokenCookie C# (CSharp) Method

ReadOAuthTokenCookie() private method

private ReadOAuthTokenCookie ( System.Web.HttpContextBase context ) : AzureFunctions.Authentication.AADOAuth2AccessToken
context System.Web.HttpContextBase
return AzureFunctions.Authentication.AADOAuth2AccessToken
        private AADOAuth2AccessToken ReadOAuthTokenCookie(HttpContextBase context)
        {
            var request = context.Request;

            // read oauthtoken cookie
            var cookies = request.Cookies;
            var strb = new StringBuilder();
            int index = 0;
            while (true)
            {
                var cookieName = OAuthTokenCookie;
                if (index > 0)
                {
                    cookieName += index.ToString(CultureInfo.InvariantCulture);
                }

                var cookie = cookies[cookieName];
                if (cookie == null)
                {
                    break;
                }

                strb.Append(cookie.Value);
                ++index;
            }

            if (strb.Length == 0)
            {
                return null;
            }

            var bytes = Convert.FromBase64String(strb.ToString());
            var oauthToken = DecodeCookie(bytes);
            if (oauthToken == null || !oauthToken.IsValid())
            {
                try
                {
                    if (oauthToken != null)
                    {
                        oauthToken = AADOAuth2AccessToken.GetAccessTokenByRefreshToken(oauthToken.TenantId, oauthToken.refresh_token, oauthToken.resource);
                    }
                }
                catch (Exception)
                {
                    oauthToken = null;
                }

                if (oauthToken == null)
                {
                    RemoveSessionCookie(context);

                    return null;
                }

                WriteOAuthTokenCookie(context, oauthToken);
            }

            return oauthToken;
        }