diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs
index 2e86762747..5fb2de1205 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs
@@ -1,4 +1,5 @@
-using OpenIddict.Abstractions;
+using System;
+using OpenIddict.Abstractions;
namespace Volo.Abp.OpenIddict.Applications;
@@ -7,7 +8,7 @@ public class AbpApplicationDescriptor : OpenIddictApplicationDescriptor
///
/// Gets or sets the front-channel logout URI associated with the application.
///
- public virtual string FrontChannelLogoutUri { get; set; }
+ public virtual Uri FrontChannelLogoutUri { get; set; }
///
/// URI to further information about client.
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
index a3804b54e0..8e9a1e0b0b 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
@@ -44,7 +44,17 @@ public class AbpApplicationManager : OpenIddictApplicationManager().GetFrontChannelLogoutUriAsync(application.As(), cancellationToken);
}
-
public virtual async ValueTask GetClientUriAsync(object application, CancellationToken cancellationToken = default)
{
Check.NotNull(application, nameof(application));
@@ -86,4 +95,11 @@ public class AbpApplicationManager : OpenIddictApplicationManager().GetLogoUriAsync(application.As(), cancellationToken);
}
+
+ protected virtual bool IsImplicitFileUri(Uri uri)
+ {
+ Check.NotNull(uri, nameof(uri));
+
+ return uri.IsAbsoluteUri && uri.IsFile && !uri.OriginalString.StartsWith(uri.Scheme, StringComparison.OrdinalIgnoreCase);
+ }
}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs
index 1f12a9d088..b0dd375908 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs
@@ -6,6 +6,8 @@ namespace Volo.Abp.OpenIddict.Applications;
public interface IAbpApplicationManager : IOpenIddictApplicationManager
{
+ ValueTask GetFrontChannelLogoutUriAsync(object application, CancellationToken cancellationToken = default);
+
ValueTask GetClientUriAsync(object application, CancellationToken cancellationToken = default);
ValueTask GetLogoUriAsync(object application, CancellationToken cancellationToken = default);
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs
index a141be9a68..d2f7b5f752 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs
@@ -102,10 +102,10 @@ public class OpenIddictApplication : FullAuditedAggregateRoot
///
/// URI to further information about client.
///
- public string ClientUri { get; set; }
+ public virtual string ClientUri { get; set; }
///
/// URI to client logo.
///
- public string LogoUri { get; set; }
+ public virtual string LogoUri { get; set; }
}