Activities of "EngincanV"

Hi, to fix this here is an example:

1-) I have a method call to open the edit modal in razor side as below:

<EntityAction TItem="BookDto"
    Text="@L["Edit"]"
    Visible=HasUpdatePermission
    Clicked="async () => await OpenMyEditModalAsync()" />

The important part is here, the Clicked part. In here, I made the method as async and use the await keyword explicitly. So, if I catch the exception, my own notification will shown.

2-) Inside of the OpenMyEditModalAsync method:

    public async Task OpenMyEditModalAsync()
    {
        try
        {
            // Some operation that might throw - simulating with the below exception
            throw new UserFriendlyException("My message");
        }
        catch (UserFriendlyException ex)
        {
            Logger.LogError(ex, "Handled UserFriendlyException");
            await Notify.Error(string.IsNullOrEmpty(ex.Message) ? L["Messages:Error"] : ex.Message);
        }
        catch (Exception ex)
        {
            //for other exceptions you can also handle here...
        }
    }

When you try like this, it should not show a model for the error, and you should be able to only see the notification on the bottom-right of your page:

Thanks for being so helpful. I will try to test what you have suggested and will get back to you in case if there is a difficulty.

Have a good day!

Thanks for your kind words. Have a good day. Regards.

Thanks EngincanV, I will check the link you suggested Thanks

Great 👍

Let me know if you need clarification at any point. Regards.

Hi @alva.gabriel,

I'm currently using ABP CLI 0.9.25 (Beta), but I still don't see the "Upgrade to Pro" option.

Did you only update your CLI to 0.9.25 or also update your ABP Studio GUI and still not able to see the option? Once, you confirm this I can better assist you.

Hi,

no, I'm not able to apply this as I'm not using ClientId and ClientSecret in my application anywhere

Are you sure about that? There should be clientId and clientSecret in your code, to define the OIDC client so you can login through your auth-server. Please search it through your application. (ClientId is typically probably is your application name, and clientSecret can be 1q2w3E* if you haven't changed it but, you should check your HttpApiHost project or DbMigrator project's appsettings.json file)

we are using external login; can I use that ClientId and ClientSecret ?

yes, if you are login through an external login provider, then you should pass that.

Hi, it seems your configuration is correct. But there are some things that we should double-check:

1-) In your *BlazorClient.csproj file there should be a section as below:

  <ItemGroup>
    <EmbeddedResource Include="Localization\Resources\Test\*.json" />
    <Content Remove="Localization\Resources\Test\*.json" />
  </ItemGroup>

This will make all of your .json files under the localization directory as embedded-resources.

2-) Also, check that Microsoft.Extensions.FileProviders.Embedded is added in csproj file and there is <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> line in a property group:

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="9.0.0" />
  </ItemGroup>
  
  <PropertyGroup>
    <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
  </PropertyGroup>

After these configurations, it should work as expected. Please let me know about the result. Regards.


Ref: https://abp.io/docs/latest/framework/infrastructure/virtual-file-system#embedding-the-files

Hi,

Why are you guys locking out the post so early. You should keep it at aleast 2 weeks. I was out fo station so couldn't find a chance to look at it.

Actually, we have a support-bot that closes and locks questions within a specific timeline. Sorry, if it caused any inconvenience.

I want to understand where exactly i need to put this as I don't see any .suite folder in my angular app directory. Please provide clear screenshots and let me know

When you generate CRUD pages, ABP Suite creates a .suite folder in your project directory with entity metadata information (in multiple .JSON files) and stores other information, so you can regenerate entities later on.

So, you can open your project directory and should be able to see the .suite folder in your project. Then replace the folder with the one in the drive file.

Answer

Hi, ABP doesn't provide a built-in charting component for Razor pages like it does for Angular (e.g., with ApexCharts), but you're free to integrate any JavaScript charting library into your Razor views.

For example, we are using chart.js in our SaaS Module and you can use our own NPM package (@abp/chart.js) and then use the related chart component by following the chart.js's documentation and guides: https://www.chartjs.org/

Hi,

no, I'm not able to apply this as I'm not using ClientId and ClientSecret in my application anywhere

Are you sure about that? There should be clientId and clientSecret in your code, to define the OIDC client so you can login through your auth-server. Please search it through your application. (ClientId is typically probably is your application name, and clientSecret can be 1q2w3E* if you haven't changed it but, you should check your HttpApiHost project or DbMigrator project's appsettings.json file)

Hi, first of all, thanks for sharing all the details. It seems the AuthServer issues a token correctly with:

"iss": "https://domain.com/authserver"

But, the consuming service (AdministrationService) throws:

SecurityTokenInvalidIssuerException: IDX10204: Unable to validate issuer.

This probably happens because the token validation parameters in your consuming services do not include "https://domain.com/authserver" as a valid issuer.

So, to fix this problem, in your AdministrationService, make sure your JWT Bearer configuration includes the issuer:

        context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddAbpJwtBearer(options =>
            {
                options.Authority = configuration["AuthServer:Authority"];
                options.MetadataAddress = configuration["AuthServer:MetaAddress"]!.EnsureEndsWith('/') + ".well-known/openid-configuration";
                options.RequireHttpsMetadata = configuration.GetValue<bool>(configuration["AuthServer:RequireHttpsMetadata"]);
                options.Audience = configuration["AuthServer:Audience"];
                
                //issuer configuration
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = true, //or set it as false, if you don't want to validate the issuer
                    ValidIssuer = "https://domain.com/authserver", // Match exactly
                    // Or use ValidIssuers = new[] { "https://domain.com/authserver" }
                };
            });

Note: Make sure this is consistent across all services that consume the tokens. (not just for administration service)


Also, please ensure you are calling app.UseForwardedHeaders(); before the routing, authentication and authorization middlewares!

Showing 241 to 250 of 1343 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.0.0-preview. Updated on September 12, 2025, 10:20