Activities of "maliming"

hi

You can refer to this sample.

https://github.com/abpframework/abp-samples/blob/master/DomainTenantResolver/OpenIddict/NG/aspnet-core/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs#L63-L92

hi

. I have Implemented MondoDb cache for IDistributed cache but it seems like all core module use this package to cache all data.

You can replace this with your implementation

hi

Please share code of your IMenuContributor

hi

This is possible. You can remove all Volo.Abp.Caching.StackExchangeRedis packages and AbpCachingStackExchangeRedisModule from Microservices project.

Remove:

using Volo.Abp.Caching.StackExchangeRedis;
        context.Services.AddSingleton<IDistributedLockProvider>(_ =>
            new RedisDistributedSynchronizationProvider(redis.GetDatabase()));

hi

Please send it to email. liming.ma@volosoft.com

hi

You can try IntrospectAccessToken in your web project. please share the logs of AuthServer ApiHost and Web again if still not working.

    <PackageReference Include="IdentityModel" Version="6.0.0" />
context.Services.AddAuthentication(options =>
    {
        options.DefaultScheme = "Cookies";
        options.DefaultChallengeScheme = "oidc";
    })
    .AddCookie("Cookies", options =>
    {
        options.ExpireTimeSpan = TimeSpan.FromDays(365);
        options.IntrospectAccessToken();
    })
using System;
using IdentityModel.Client;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;

namespace MyCompanyName.MyProjectName.Web;

public static class CookieAuthenticationOptionsExtensions
{
    /// <summary>
    /// Introspect access token on validating the principal.
    /// </summary>
    /// <param name="options"></param>
    /// <param name="oidcAuthenticationScheme"></param>
    /// <returns></returns>
    public static CookieAuthenticationOptions IntrospectAccessToken(this CookieAuthenticationOptions options, string oidcAuthenticationScheme = "oidc")
    {
        var originalHandler = options.Events.OnValidatePrincipal;
        options.Events.OnValidatePrincipal = async principalContext =>
        {
            originalHandler?.Invoke(principalContext);

            if (principalContext.Principal != null && principalContext.Principal.Identity != null && principalContext.Principal.Identity.IsAuthenticated)
            {
                var accessToken = principalContext.Properties.GetTokenValue("access_token");
                if (!accessToken.IsNullOrWhiteSpace())
                {
                    var openIdConnectOptions = principalContext.HttpContext.RequestServices.GetRequiredService<IOptionsMonitor<OpenIdConnectOptions>>().Get(oidcAuthenticationScheme);
                    if (openIdConnectOptions.Configuration == null && openIdConnectOptions.ConfigurationManager != null)
                    {
                        openIdConnectOptions.Configuration = await openIdConnectOptions.ConfigurationManager.GetConfigurationAsync(principalContext.HttpContext.RequestAborted);
                    }

                    var response = await openIdConnectOptions.Backchannel.IntrospectTokenAsync(new TokenIntrospectionRequest
                    {
                        Address = openIdConnectOptions.Configuration?.IntrospectionEndpoint ?? openIdConnectOptions.Authority.EnsureEndsWith('/') + "connect/introspect",
                        ClientId = openIdConnectOptions.ClientId,
                        ClientSecret = openIdConnectOptions.ClientSecret,
                        Token = accessToken
                    });

                    if (response.IsActive)
                    {
                        return;
                    }
                }

                principalContext.RejectPrincipal();
                await principalContext.HttpContext.SignOutAsync(principalContext.Scheme.Name);
            }
        };

        return options;
    }
}

This is not the correct way to use modules.

See https://docs.abp.io/en/abp/latest/Modules/Docs

hi

https://support.abp.io/QA/Questions/1389/How-to-customize-register-page-MVC https://docs.abp.io/en/abp/latest/UI/AspNetCore/Customization-User-Interface

hi

This is a class. You can put it in any folder.

Yes, in the AuthServer project.

Showing 7411 to 7420 of 11558 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 25, 2025, 06:16
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.