/// <summary> /// Configures the Authentication layer. /// /// </summary> /// <param name="options">The options.</param> public static void Configure(OpenIdConnectOptions options) { Options = options; Options.TrustedAuthoritiesSet = new HashSet <string>(); if (options.TrustedAuthorities != null) { foreach (var auth in options.TrustedAuthorities) { var key = auth.ToLowerInvariant().RemoveTrailingSlash(); Options.TrustedAuthoritiesSet.Add(key); } } Options.TrustedAuthoritiesSet.Add(Options.Authority.ToLowerInvariant().RemoveTrailingSlash()); //convert endpoint prefixes into app relative virtual path if (options.DemandAuthorizationHeaderForEndpointPrefixes?.Count > 0) { var list = new List <string>(); foreach (var p in options.DemandAuthorizationHeaderForEndpointPrefixes) { list.Add(System.Web.VirtualPathUtility.ToAppRelative(p)); } } _idsService = new OpenIdService(Options); _tokenValidationService = new TokenValidationService(_idsService); var routes = RouteTable.Routes; var openIdRouterHandler = new RouterHandler(); //create fake routes for open id sign-in and sign out endpoint //NOTE: without '/{action}' Html.ActionLink helper goes crazy and build incorrect url var routeSignIn = new Route(options.Authentication.SignInEndpoint + "/{action}", openIdRouterHandler) { Defaults = new RouteValueDictionary() { { "controller", options.Authentication.SignInEndpoint }, { "action", "Index" } } }; var routeSignOutCallback = new Route(options.Authentication.SignOutCallbackEndpoint + "/{action}", openIdRouterHandler) { Defaults = new RouteValueDictionary() { { "controller", options.Authentication.SignOutCallbackEndpoint }, { "action", "Index" } } }; routes.Add("OpenIdSignInEndpoint", routeSignIn); routes.Add("OpenIdSignOutCallbackEndpoint", routeSignOutCallback); }
public TokenValidationService(OpenIdService idsService) { _idsService = idsService; }