Add sugar for UseClaimsTransformation
This commit is contained in:
parent
75474fe9fa
commit
bb2e12a8e6
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using Microsoft.AspNet.Authentication;
|
using Microsoft.AspNet.Authentication;
|
||||||
|
using Microsoft.Framework.Internal;
|
||||||
|
using Microsoft.Framework.OptionsModel;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Builder
|
namespace Microsoft.AspNet.Builder
|
||||||
{
|
{
|
||||||
|
|
@ -15,12 +17,34 @@ namespace Microsoft.AspNet.Builder
|
||||||
/// Adds a claims transformation middleware to your web application pipeline.
|
/// Adds a claims transformation middleware to your web application pipeline.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="app">The IApplicationBuilder passed to your configuration method</param>
|
/// <param name="app">The IApplicationBuilder passed to your configuration method</param>
|
||||||
/// <param name="configureOptions">Used to configure the options for the middleware</param>
|
|
||||||
/// <param name="optionsName">The name of the options class that controls the middleware behavior, null will use the default options</param>
|
|
||||||
/// <returns>The original app parameter</returns>
|
/// <returns>The original app parameter</returns>
|
||||||
public static IApplicationBuilder UseClaimsTransformation(this IApplicationBuilder app)
|
public static IApplicationBuilder UseClaimsTransformation(this IApplicationBuilder app)
|
||||||
{
|
{
|
||||||
return app.UseMiddleware<ClaimsTransformationMiddleware>();
|
return app.UseClaimsTransformation(configureOptions: o => { }, optionsName: string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a claims transformation middleware to your web application pipeline.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="app">The IApplicationBuilder passed to your configuration method</param>
|
||||||
|
/// <param name="configureOptions">Used to configure the options for the middleware</param>
|
||||||
|
/// <returns>The original app parameter</returns>
|
||||||
|
public static IApplicationBuilder UseClaimsTransformation(this IApplicationBuilder app, [NotNull] Action<ClaimsTransformationOptions> configureOptions)
|
||||||
|
{
|
||||||
|
return app.UseClaimsTransformation(configureOptions: configureOptions, optionsName: string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a claims transformation middleware to your web application pipeline.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="app">The IApplicationBuilder passed to your configuration method</param>
|
||||||
|
/// <param name="configureOptions">Used to configure the options for the middleware</param>
|
||||||
|
/// <param name="optionsName">The name of the options class that controls the middleware behavior, null will use the default options</param>
|
||||||
|
/// <returns>The original app parameter</returns>
|
||||||
|
public static IApplicationBuilder UseClaimsTransformation(this IApplicationBuilder app, [NotNull] Action<ClaimsTransformationOptions> configureOptions, [NotNull] string optionsName)
|
||||||
|
{
|
||||||
|
return app.UseMiddleware<ClaimsTransformationMiddleware>(
|
||||||
|
new ConfigureOptions<ClaimsTransformationOptions>(configureOptions) { Name = optionsName });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -15,10 +15,18 @@ namespace Microsoft.AspNet.Authentication
|
||||||
|
|
||||||
public ClaimsTransformationMiddleware(
|
public ClaimsTransformationMiddleware(
|
||||||
[NotNull] RequestDelegate next,
|
[NotNull] RequestDelegate next,
|
||||||
[NotNull] IOptions<ClaimsTransformationOptions> options)
|
[NotNull] IOptions<ClaimsTransformationOptions> options,
|
||||||
|
ConfigureOptions<ClaimsTransformationOptions> configureOptions)
|
||||||
{
|
{
|
||||||
// REVIEW: do we need to take ConfigureOptions<ClaimsTransformationOptions>??
|
if (configureOptions != null)
|
||||||
Options = options.Options;
|
{
|
||||||
|
Options = options.GetNamedOptions(configureOptions.Name);
|
||||||
|
configureOptions.Configure(Options, configureOptions.Name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Options = options.Options;
|
||||||
|
}
|
||||||
_next = next;
|
_next = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -461,7 +461,16 @@ namespace Microsoft.AspNet.Authentication.Google
|
||||||
options.AutomaticAuthentication = true;
|
options.AutomaticAuthentication = true;
|
||||||
});
|
});
|
||||||
app.UseGoogleAuthentication(configureOptions);
|
app.UseGoogleAuthentication(configureOptions);
|
||||||
app.UseClaimsTransformation();
|
app.UseClaimsTransformation(o =>
|
||||||
|
{
|
||||||
|
o.Transformation = p =>
|
||||||
|
{
|
||||||
|
var id = new ClaimsIdentity("xform");
|
||||||
|
id.AddClaim(new Claim("xform", "yup"));
|
||||||
|
p.AddIdentity(id);
|
||||||
|
return p;
|
||||||
|
};
|
||||||
|
});
|
||||||
app.Use(async (context, next) =>
|
app.Use(async (context, next) =>
|
||||||
{
|
{
|
||||||
var req = context.Request;
|
var req = context.Request;
|
||||||
|
|
@ -508,13 +517,6 @@ namespace Microsoft.AspNet.Authentication.Google
|
||||||
{
|
{
|
||||||
options.SignInScheme = TestExtensions.CookieAuthenticationScheme;
|
options.SignInScheme = TestExtensions.CookieAuthenticationScheme;
|
||||||
});
|
});
|
||||||
services.ConfigureClaimsTransformation(p =>
|
|
||||||
{
|
|
||||||
var id = new ClaimsIdentity("xform");
|
|
||||||
id.AddClaim(new Claim("xform", "yup"));
|
|
||||||
p.AddIdentity(id);
|
|
||||||
return p;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue