@@ -11,9 +11,13 @@ namespace Microsoft.NET.Sdk.Functions.Http
11
11
{
12
12
internal static class HttpClientHelpers
13
13
{
14
- public static async Task < IHttpResponse > PostWithBasicAuthAsync ( this IHttpClient client , Uri uri , string username , string password , string contentType , string userAgent , Encoding encoding , Stream messageBody )
14
+ internal static readonly string AzureADUserName = Guid . Empty . ToString ( ) ;
15
+ internal static readonly string BearerAuthenticationScheme = "Bearer" ;
16
+ internal static readonly string BasicAuthenticationScheme = "Basic" ;
17
+
18
+ public static async Task < IHttpResponse > PostRequestAsync ( this IHttpClient client , Uri uri , string username , string password , string contentType , string userAgent , Encoding encoding , Stream messageBody )
15
19
{
16
- AddBasicAuthToClient ( username , password , client ) ;
20
+ AddAuthenticationHeader ( username , password , client ) ;
17
21
client . DefaultRequestHeaders . Add ( "User-Agent" , userAgent ) ;
18
22
19
23
StreamContent content = new StreamContent ( messageBody ?? new MemoryStream ( ) )
@@ -42,9 +46,9 @@ public static async Task<IHttpResponse> PostWithBasicAuthAsync(this IHttpClient
42
46
}
43
47
}
44
48
45
- public static async Task < IHttpResponse > GetWithBasicAuthAsync ( this IHttpClient client , Uri uri , string username , string password , string userAgent , CancellationToken cancellationToken )
49
+ public static async Task < IHttpResponse > GetRequestAsync ( this IHttpClient client , Uri uri , string username , string password , string userAgent , CancellationToken cancellationToken )
46
50
{
47
- AddBasicAuthToClient ( username , password , client ) ;
51
+ AddAuthenticationHeader ( username , password , client ) ;
48
52
client . DefaultRequestHeaders . Add ( "User-Agent" , userAgent ) ;
49
53
50
54
try
@@ -58,14 +62,21 @@ public static async Task<IHttpResponse> GetWithBasicAuthAsync(this IHttpClient c
58
62
}
59
63
}
60
64
61
- private static void AddBasicAuthToClient ( string username , string password , IHttpClient client )
65
+ private static void AddAuthenticationHeader ( string username , string password , IHttpClient client )
62
66
{
63
67
client . DefaultRequestHeaders . Remove ( "Connection" ) ;
64
68
65
- string plainAuth = string . Format ( "{0}:{1}" , username , password ) ;
66
- byte [ ] plainAuthBytes = Encoding . ASCII . GetBytes ( plainAuth ) ;
67
- string base64 = Convert . ToBase64String ( plainAuthBytes ) ;
68
- client . DefaultRequestHeaders . Authorization = new AuthenticationHeaderValue ( "Basic" , base64 ) ;
69
+ if ( ! string . Equals ( username , AzureADUserName , StringComparison . Ordinal ) )
70
+ {
71
+ string plainAuth = string . Format ( "{0}:{1}" , username , password ) ;
72
+ byte [ ] plainAuthBytes = Encoding . ASCII . GetBytes ( plainAuth ) ;
73
+ string base64 = Convert . ToBase64String ( plainAuthBytes ) ;
74
+ client . DefaultRequestHeaders . Authorization = new AuthenticationHeaderValue ( BasicAuthenticationScheme , base64 ) ;
75
+ }
76
+ else
77
+ {
78
+ client . DefaultRequestHeaders . Authorization = new AuthenticationHeaderValue ( BearerAuthenticationScheme , password ) ;
79
+ }
69
80
}
70
81
}
71
82
}
0 commit comments