1
1
using System ;
2
2
using System . Collections . Generic ;
3
+ using System . Linq ;
3
4
using System . Net ;
4
5
using System . Net . Http ;
5
6
using System . Threading . Tasks ;
@@ -36,25 +37,28 @@ public async Task LoginWithOpenIdConnect()
36
37
Assert . Equal < string > ( "form_post" , queryItems [ "response_mode" ] ) ;
37
38
Assert . Equal < string > ( "code id_token" , queryItems [ "response_type" ] ) ;
38
39
Assert . Equal < string > ( "openid profile" , queryItems [ "scope" ] ) ;
39
- Assert . Equal < string > ( "OpenIdConnect.AuthenticationProperties= ValidStateData" , queryItems [ "state" ] ) ;
40
+ Assert . Equal < string > ( "ValidStateData" , queryItems [ "state" ] ) ;
40
41
Assert . NotNull ( queryItems [ "nonce" ] ) ;
41
42
Assert . NotNull ( _httpClientHandler . CookieContainer . GetCookies ( new Uri ( _deploymentResult . ApplicationBaseUri ) ) . GetCookieWithName ( ".AspNetCore.OpenIdConnect.Nonce.protectedString" ) ) ;
42
43
43
44
// This is just enable the auto-redirect.
44
45
_httpClientHandler = new HttpClientHandler ( ) { AllowAutoRedirect = true } ;
45
46
_httpClient = new HttpClient ( _httpClientHandler ) { BaseAddress = new Uri ( _deploymentResult . ApplicationBaseUri ) } ;
46
- _httpClientHandler . CookieContainer . Add ( new Uri ( _deploymentResult . ApplicationBaseUri ) , new Cookie ( ".AspNet.OpenIdConnect.Nonce.protectedString" , "N" ) ) ;
47
+ foreach ( var header in Microsoft . Net . Http . Headers . SetCookieHeaderValue . ParseList ( response . Headers . GetValues ( "Set-Cookie" ) . ToList ( ) ) )
48
+ {
49
+ _httpClientHandler . CookieContainer . Add ( new Uri ( _deploymentResult . ApplicationBaseUri ) , new Cookie ( header . Name , header . Value ) ) ;
50
+ }
47
51
48
52
//Post a message to the OpenIdConnect middleware
49
53
var token = new List < KeyValuePair < string , string > >
50
54
{
51
55
new KeyValuePair < string , string > ( "code" , "AAABAAAAvPM1KaPlrEqdFSBzjqfTGGBtrTYVn589oKw4lLgJ6Svz0AhPVOJr0J2-Uu_KffGlqIbYlRAyxmt-vZ7VlSVdrWvOkNhK9OaAMaSD7LDoPbBTVMEkB0MdAgBTV34l2el-s8ZI02_9PvgQaORZs7n8eGaGbcoKAoxiDn2OcKuJVplXYgrGUwU4VpRaqe6RaNzuseM7qBFbLIv4Wps8CndE6W8ccmuu6EvGC6-H4uF9EZL7gU4nEcTcvkE4Qyt8do6VhTVfM1ygRNQgmV1BCig5t_5xfhL6-xWQdy15Uzn_Df8VSsyDXe8s9cxyKlqc_AIyLFy_NEiMQFUqjZWKd_rR3A8ugug15SEEGuo1kF3jMc7dVMdE6OF9UBd-Ax5ILWT7V4clnRQb6-CXB538DlolREfE-PowXYruFBA-ARD6rwAVtuVfCSbS0Zr4ZqfNjt6x8yQdK-OkdQRZ1thiZcZlm1lyb2EquGZ8Deh2iWBoY1uNcyjzhG-L43EivxtHAp6Y8cErhbo41iacgqOycgyJWxiB5J0HHkxD0nQ2RVVuY8Ybc9sdgyfKkkK2wZ3idGaRCdZN8Q9VBhWRXPDMqHWG8t3aZRtvJ_Xd3WhjNPJC0GpepUGNNQtXiEoIECC363o1z6PZC5-E7U3l9xK06BZkcfTOnggUiSWNCrxUKS44dNqaozdYlO5E028UgAEhJ4eDtcP3PZty-0j4j5Mw0F2FmyAA" ) ,
52
56
new KeyValuePair < string , string > ( "id_token" , "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtyaU1QZG1Cdng2OHNrVDgtbVBBQjNCc2VlQSJ9.eyJhdWQiOiJjOTk0OTdhYS0zZWUyLTQ3MDctYjhhOC1jMzNmNTEzMjNmZWYiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC80YWZiYzY4OS04MDViLTQ4Y2YtYTI0Yy1kNGFhMzI0OGEyNDgvIiwiaWF0IjoxNDIyMzk1NzYzLCJuYmYiOjE0MjIzOTU3NjMsImV4cCI6MTQyMjM5OTY2MywidmVyIjoiMS4wIiwidGlkIjoiNGFmYmM2ODktODA1Yi00OGNmLWEyNGMtZDRhYTMyNDhhMjQ4IiwiYW1yIjpbInB3ZCJdLCJvaWQiOiJmODc2YWJlYi1kNmI1LTQ0ZTQtOTcxNi02MjY2YWMwMTgxYTgiLCJ1cG4iOiJ1c2VyM0BwcmFidXJhamdtYWlsLm9ubWljcm9zb2Z0LmNvbSIsInN1YiI6IlBVZGhjbFA1UGdJalNVOVAxUy1IZWxEYVNGU2YtbVhWMVk2MC1LMnZXcXciLCJnaXZlbl9uYW1lIjoiVXNlcjMiLCJmYW1pbHlfbmFtZSI6IlVzZXIzIiwibmFtZSI6IlVzZXIzIiwidW5pcXVlX25hbWUiOiJ1c2VyM0BwcmFidXJhamdtYWlsLm9ubWljcm9zb2Z0LmNvbSIsIm5vbmNlIjoiNjM1NTc5OTI4NjM5NTE3NzE1Lk9UUmpPVFZrTTJFdE1EUm1ZUzAwWkRFM0xUaGhaR1V0WldabVpHTTRPRGt6Wkdaa01EUmxORGhrTjJNdE9XSXdNQzAwWm1Wa0xXSTVNVEl0TVRVd1ltUTRNemRtT1dJMCIsImNfaGFzaCI6IkZHdDN3Y1FBRGUwUFkxUXg3TzFyNmciLCJwd2RfZXhwIjoiNjY5MzI4MCIsInB3ZF91cmwiOiJodHRwczovL3BvcnRhbC5taWNyb3NvZnRvbmxpbmUuY29tL0NoYW5nZVBhc3N3b3JkLmFzcHgifQ.coAdCkdMgnslMHagdU8IBgH7Z0dilRdMfKytyqPJuTr6sbmbhrAoAj-KeGwbKgzrd-BeDk_rW47dntWuuAqGrAOGzxXvS2dcSWgoEKoXuDccIL5b4rIomRpfJpaeE-YwiU3usyRvoQCpHmtOa0g7xVilIj3_1-9ylMgRDY5qcrtQ_hEZlGuYyiCPR0dw8WmNU7r6PKObG-o3Yk_RbEBHjnaWxKoJwrVUEZUQOJDAvlr6ZYEmGTlD_BM0Rc_0fJZPU7A3uN9PHLw1atm-chN06IDXf23R33JI_xFuEZnj9HZQ_eIzNCl7GFmUryK3FFgYJpIbsI0BIFuksSikXz33IA" ) ,
53
- new KeyValuePair < string , string > ( "state" , "OpenIdConnect.AuthenticationProperties= ValidStateData" ) ,
57
+ new KeyValuePair < string , string > ( "state" , "ValidStateData" ) ,
54
58
new KeyValuePair < string , string > ( "session_state" , "d0b59ffa-2df9-4d8c-b43a-2c410987f4ae" )
55
59
} ;
56
60
57
- response = await DoPostAsync ( string . Empty , new FormUrlEncodedContent ( token . ToArray ( ) ) ) ;
61
+ response = await DoPostAsync ( "signin-oidc" , new FormUrlEncodedContent ( token . ToArray ( ) ) ) ;
58
62
await ThrowIfResponseStatusNotOk ( response ) ;
59
63
responseContent = await response . Content . ReadAsStringAsync ( ) ;
60
64
Assert . Equal ( _deploymentResult . ApplicationBaseUri + "Account/ExternalLoginCallback?ReturnUrl=%2F" , response . RequestMessage . RequestUri . AbsoluteUri ) ;
@@ -106,7 +110,11 @@ public async Task LoginWithOpenIdConnect()
106
110
"https://login.windows.net/4afbc689-805b-48cf-a24c-d4aa3248a248/oauth2/logout" ,
107
111
response . Headers . Location . AbsoluteUri . Replace ( response . Headers . Location . Query , string . Empty ) ) ;
108
112
queryItems = new QueryCollection ( QueryHelpers . ParseQuery ( response . Headers . Location . Query ) ) ;
109
- Assert . Equal < string > ( _deploymentResult . ApplicationBaseUri + "Account/Login" , queryItems [ "post_logout_redirect_uri" ] ) ;
113
+ Assert . Equal < string > ( _deploymentResult . ApplicationBaseUri , queryItems [ "post_logout_redirect_uri" ] ) ;
114
+
115
+ response = await DoGetAsync ( queryItems [ "post_logout_redirect_uri" ] ) ;
116
+ responseContent = await response . Content . ReadAsStringAsync ( ) ;
117
+ Assert . Contains ( "Log in" , responseContent ) ;
110
118
}
111
119
}
112
120
}
0 commit comments