Task<ID2LPrincipal> IRequestAuthenticator.AuthenticateAsync(
			HttpRequestMessage request
		) {
			string bearerToken = request.GetBearerTokenValue();

			return AuthenticateHelper( bearerToken );
		}
		Task<ID2LPrincipal> IRequestAuthenticator.AuthenticateAsync(
			HttpRequestMessage request,
			AuthenticationMode authMode
		) {
			string cookie = request.GetCookieValue();
			string bearerToken = request.GetBearerTokenValue();
			string xsrfToken = request.GetXsrfValue();

			return AuthenticateHelper( cookie, xsrfToken, bearerToken, authMode );
		}
		public void GetBearerTokenValue_WrongScheme_ExpectNull() {
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithAuthHeader( "invalidscheme", "somevalue" );
			Assert.IsNull( httpRequestMessage.GetBearerTokenValue() );
		}
		public void GetBearerTokenValue_Success() {
			string expected = "somebearertokenvalue";
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithAuthHeader( expected );
			Assert.AreEqual( expected, httpRequestMessage.GetBearerTokenValue() );
		}