예제 #1
0
 public MessageCookie(
     ILogger <MessageCookie <TModel> > logger,
     IdentityServerContext context,
     IDataProtectionProvider provider)
 {
     _logger    = logger;
     _context   = context;
     _protector = provider.CreateProtector(MessageType);
 }
        public static void SetBasePath(this IdentityServerContext context, string value)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            context.HttpContext.Items[Constants.EnvironmentKeys.IdentityServerBasePath] = value;
        }
예제 #3
0
        public async Task Invoke(HttpContext context, IdentityServerContext idsvrContext)
        {
            var request = context.Request;

            var host = request.Scheme + "://" + request.Host.Value;

            idsvrContext.SetHost(host);
            idsvrContext.SetBasePath(request.PathBase.Value.RemoveTrailingSlash());

            await _next(context);
        }
        internal static string GetIdentityServerSignoutFrameCallbackUrl(this IdentityServerContext context)
        {
            var sessionCookie = context.HttpContext.RequestServices.GetRequiredService <SessionCookie>();
            var sid           = sessionCookie.GetSessionId();

            if (sid != null)
            {
                var signoutIframeUrl = context.GetIdentityServerBaseUrl().EnsureTrailingSlash() + Constants.ProtocolRoutePaths.EndSessionCallback;
                //TODO: update sid to OidcConstants when idmodel released
                signoutIframeUrl = signoutIframeUrl.AddQueryString("sid" + "=" + sid);
                return(signoutIframeUrl);
            }
            return(null);
        }
        public static string GetIssuerUri(this IdentityServerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            // if they've explicitly configured a URI then use it,
            // otherwise dynamically calculate it
            var uri = context.Options.IssuerUri;

            if (uri.IsMissing())
            {
                uri = context.GetIdentityServerBaseUrl();
                if (uri.EndsWith("/"))
                {
                    uri = uri.Substring(0, uri.Length - 1);
                }
                uri = uri.ToLowerInvariant();
            }

            return(uri);
        }
예제 #6
0
 public ClientListCookie(IdentityServerContext context)
 {
     _context = context;
 }
예제 #7
0
 public SessionCookie(IdentityServerContext context)
 {
     _context = context;
 }
 internal static async Task <ClaimsPrincipal> GetIdentityServerUserAsync(this IdentityServerContext context)
 {
     return(await context.HttpContext.Authentication.AuthenticateAsync(context.Options.AuthenticationOptions.EffectiveAuthenticationScheme));
 }
 /// <summary>
 /// Gets the public base URL for IdentityServer.
 /// </summary>
 /// <param name="env">The OWIN environment.</param>
 /// <returns></returns>
 public static string GetIdentityServerBaseUrl(this IdentityServerContext context)
 {
     return(context.GetHost() + context.GetBasePath());
 }
 /// <summary>
 /// Gets the base path of IdentityServer. Can be used inside of Katana <c>Map</c>ped middleware.
 /// </summary>
 /// <param name="env">The OWIN environment.</param>
 /// <returns></returns>
 public static string GetBasePath(this IdentityServerContext context)
 {
     return(context.HttpContext.Items[Constants.EnvironmentKeys.IdentityServerBasePath] as string);
 }