Skip to content

Commit dde7671

Browse files
committed
OIDC: Use IdentityModel redirect form generator #1448
1 parent 226b240 commit dde7671

File tree

1 file changed

+2
-42
lines changed

1 file changed

+2
-42
lines changed

src/Microsoft.AspNetCore.Authentication.OpenIdConnect/OpenIdConnectHandler.cs

Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
using Microsoft.AspNetCore.Http;
1717
using Microsoft.Extensions.Logging;
1818
using Microsoft.Extensions.Options;
19-
using Microsoft.Extensions.Primitives;
2019
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
2120
using Microsoft.IdentityModel.Tokens;
2221
using Microsoft.Net.Http.Headers;
@@ -30,23 +29,8 @@ namespace Microsoft.AspNetCore.Authentication.OpenIdConnect
3029
public class OpenIdConnectHandler : RemoteAuthenticationHandler<OpenIdConnectOptions>, IAuthenticationSignOutHandler
3130
{
3231
private const string NonceProperty = "N";
33-
private const string UriSchemeDelimiter = "://";
3432

3533
private const string HeaderValueEpocDate = "Thu, 01 Jan 1970 00:00:00 GMT";
36-
private const string InputTagFormat = @"<input type=""hidden"" name=""{0}"" value=""{1}"" />";
37-
private const string HtmlFormFormat = @"<!doctype html>
38-
<html>
39-
<head>
40-
<title>Please wait while you're being redirected to the identity provider</title>
41-
</head>
42-
<body>
43-
<form name=""form"" method=""post"" action=""{0}"">
44-
{1}
45-
<noscript>Click here to finish the process: <input type=""submit"" /></noscript>
46-
</form>
47-
<script>document.form.submit();</script>
48-
</body>
49-
</html>";
5034

5135
private static readonly RandomNumberGenerator CryptoRandom = RandomNumberGenerator.Create();
5236

@@ -241,19 +225,7 @@ public async virtual Task SignOutAsync(AuthenticationProperties properties)
241225
}
242226
else if (Options.AuthenticationMethod == OpenIdConnectRedirectBehavior.FormPost)
243227
{
244-
var inputs = new StringBuilder();
245-
foreach (var parameter in message.Parameters)
246-
{
247-
var name = HtmlEncoder.Encode(parameter.Key);
248-
var value = HtmlEncoder.Encode(parameter.Value);
249-
250-
var input = string.Format(CultureInfo.InvariantCulture, InputTagFormat, name, value);
251-
inputs.AppendLine(input);
252-
}
253-
254-
var issuer = HtmlEncoder.Encode(message.IssuerAddress);
255-
256-
var content = string.Format(CultureInfo.InvariantCulture, HtmlFormFormat, issuer, inputs);
228+
var content = message.BuildFormPost();
257229
var buffer = Encoding.UTF8.GetBytes(content);
258230

259231
Response.ContentLength = buffer.Length;
@@ -422,19 +394,7 @@ protected override async Task HandleChallengeAsync(AuthenticationProperties prop
422394
}
423395
else if (Options.AuthenticationMethod == OpenIdConnectRedirectBehavior.FormPost)
424396
{
425-
var inputs = new StringBuilder();
426-
foreach (var parameter in message.Parameters)
427-
{
428-
var name = HtmlEncoder.Encode(parameter.Key);
429-
var value = HtmlEncoder.Encode(parameter.Value);
430-
431-
var input = string.Format(CultureInfo.InvariantCulture, InputTagFormat, name, value);
432-
inputs.AppendLine(input);
433-
}
434-
435-
var issuer = HtmlEncoder.Encode(message.IssuerAddress);
436-
437-
var content = string.Format(CultureInfo.InvariantCulture, HtmlFormFormat, issuer, inputs);
397+
var content = message.BuildFormPost();
438398
var buffer = Encoding.UTF8.GetBytes(content);
439399

440400
Response.ContentLength = buffer.Length;

0 commit comments

Comments
 (0)