Browse Source

Merge pull request #973 from colinin/rel-8.2.0

Rel 8.2.0
pull/988/head
yx lin 1 year ago
committed by GitHub
parent
commit
b49d2a891d
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      .github/workflows/publish.yml
  2. 4
      .github/workflows/release.yml
  3. 22
      Directory.Packages.props
  4. 2
      apps/vue/src/api/abp/localization/index.ts
  5. 23
      apps/vue/src/api/account/profiles/index.ts
  6. 5
      apps/vue/src/api/account/profiles/model/index.ts
  7. 2
      apps/vue/src/api/auditing/security-logs/index.ts
  8. 2
      apps/vue/src/api/identity/claims/index.ts
  9. 2
      apps/vue/src/api/identity/organization-units/index.ts
  10. 27
      apps/vue/src/api/identity/sessions/index.ts
  11. 16
      apps/vue/src/api/identity/sessions/model/index.ts
  12. 2
      apps/vue/src/api/localization/languages/index.ts
  13. 2
      apps/vue/src/api/messages/friends/index.ts
  14. 2
      apps/vue/src/api/messages/groups/index.ts
  15. 4
      apps/vue/src/api/multi-tenancy/tenants/index.ts
  16. 74
      apps/vue/src/layouts/default/header/components/notify/NoticeList.vue
  17. 74
      apps/vue/src/layouts/default/header/components/notify/index.vue
  18. 13
      apps/vue/src/layouts/default/header/components/notify/useNotifications.ts
  19. 16
      apps/vue/src/layouts/default/header/components/user-dropdown/index.vue
  20. 49
      apps/vue/src/views/account/security-logs/index.vue
  21. 141
      apps/vue/src/views/account/sessions/index.vue
  22. 150
      apps/vue/src/views/identity/user/components/SessionModal.vue
  23. 13
      apps/vue/src/views/identity/user/components/UserTable.vue
  24. 1
      apps/vue/types/abp.d.ts
  25. 248
      aspnet-core/LINGYUN.MicroService.All.sln
  26. 63
      aspnet-core/LINGYUN.MicroService.SingleProject.sln
  27. 17
      aspnet-core/LINGYUN.MicroService.WebhooksManagement.sln
  28. 16
      aspnet-core/LINGYUN.MicroService.Workflow.sln
  29. 7
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN.Abp.AuditLogging.Elasticsearch.csproj
  30. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/AbpAuditLoggingElasticsearchModule.cs
  31. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/AbpAuditLoggingElasticsearchOptions.cs
  32. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/AuditLogInfoToAuditLogConverter.cs
  33. 13
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/ElasticsearchAuditLogManager.cs
  34. 11
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/ElasticsearchSecurityLogManager.cs
  35. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IAuditLogInfoToAuditLogConverter.cs
  36. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IIndexInitializer.cs
  37. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IIndexNameNormalizer.cs
  38. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IndexInitializer.cs
  39. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IndexInitializerService.cs
  40. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IndexNameNormalizer.cs
  41. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN.Abp.AuditLogging.EntityFrameworkCore.csproj
  42. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingEntityFrameworkCoreModule.cs
  43. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/AbpAuditingMapperProfile.cs
  44. 15
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/AuditLogManager.cs
  45. 11
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/SecurityLogManager.cs
  46. 9
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN.Abp.AuditLogging.csproj
  47. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AbpAuditLoggingModule.cs
  48. 62
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AuditLog.cs
  49. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AuditLogAction.cs
  50. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AuditingStore.cs
  51. 43
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/DefaultAuditLogManager.cs
  52. 35
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/DefaultEntityChangeStore.cs
  53. 45
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/DefaultSecurityLogManager.cs
  54. 9
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/EntityChange.cs
  55. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/EntityChangeWithUsername.cs
  56. 9
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/EntityPropertyChange.cs
  57. 45
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/IAuditLogManager.cs
  58. 17
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/IEntityChangeStore.cs
  59. 45
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/ISecurityLogManager.cs
  60. 23
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/SecurityLog.cs
  61. 5
      aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/SecurityLogStore.cs
  62. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/LINGYUN.Abp.Authentication.QQ.csproj
  63. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/LINGYUN/Abp/Authentication/QQ/AbpQQClaimTypes.cs
  64. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/Microsoft/AspNetCore/Authentication/QQ/QQConnectOAuthHandler.cs
  65. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/Microsoft/AspNetCore/Authentication/QQ/QQConnectOAuthOptions.cs
  66. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/Microsoft/AspNetCore/Authentication/QQAuthenticationExtensions.cs
  67. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/System/BytesExtensions.cs
  68. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/System/StringExtensions.cs
  69. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/System/Text/Json/JsonElementExtensions.cs
  70. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/LINGYUN.Abp.Authentication.WeChat.csproj
  71. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChat/Official/WeChatOfficialOAuthHandler.cs
  72. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChat/Official/WeChatOfficialOAuthOptions.cs
  73. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChat/Official/WeChatOfficialStateCacheItem.cs
  74. 5
      aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChatAuthenticationExtensions.cs
  75. 9
      aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/LINGYUN.Abp.Authorization.OrganizationUnits.csproj
  76. 2
      aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj
  77. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN.Abp.Aliyun.SettingManagement.csproj
  78. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AbpAliyunSettingManagementModule.cs
  79. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingAppService.cs
  80. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingController.cs
  81. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingPermissionDefinitionProvider.cs
  82. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingPermissionNames.cs
  83. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/IAliyunSettingAppService.cs
  84. 7
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN.Abp.Aliyun.csproj
  85. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AbpAliyunException.cs
  86. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AbpAliyunModule.cs
  87. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AcsClientFactory.cs
  88. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AliyunBasicSessionCredentialsCacheItem.cs
  89. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AliyunClientFactory.cs
  90. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/IAcsClientFactory.cs
  91. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Localization/AliyunResource.cs
  92. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingNames.cs
  93. 5
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingProvider.cs
  94. 7
      aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN.Abp.BlobStoring.Tencent.csproj
  95. 5
      aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/DefaultTencentBlobNameCalculator.cs
  96. 5
      aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/ITencentBlobNameCalculator.cs
  97. 5
      aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobContainerConfigurationExtensions.cs
  98. 5
      aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobNamingNormalizer.cs
  99. 5
      aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobProviderConfiguration.cs
  100. 5
      aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobProviderConfigurationNames.cs

2
.github/workflows/publish.yml

@ -2,7 +2,7 @@ name: "Publish"
on: on:
push: push:
branches: [ rel-8.1.3 ] branches: [ rel-8.2.0 ]
env: env:
DOTNET_VERSION: "8.0.200" DOTNET_VERSION: "8.0.200"

4
.github/workflows/release.yml

@ -2,7 +2,7 @@ name: "Tagged Release"
on: on:
push: push:
branches: [ rel-8.1.3 ] branches: [ rel-8.2.0 ]
jobs: jobs:
tagged-release: tagged-release:
@ -14,4 +14,4 @@ jobs:
with: with:
repo_token: "${{ secrets.GITHUB_TOKEN }}" repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false prerelease: false
automatic_release_tag: "8.1.3" automatic_release_tag: "8.2.0"

22
Directory.Packages.props

@ -2,17 +2,16 @@
<PropertyGroup> <PropertyGroup>
<DotNetCoreCAPPackageVersion>8.1.1</DotNetCoreCAPPackageVersion> <DotNetCoreCAPPackageVersion>8.1.1</DotNetCoreCAPPackageVersion>
<ElsaPackageVersion>2.14.1</ElsaPackageVersion> <ElsaPackageVersion>2.14.1</ElsaPackageVersion>
<VoloAbpPackageVersion>8.1.3</VoloAbpPackageVersion> <VoloAbpPackageVersion>8.2.0</VoloAbpPackageVersion>
<LINGYUNAbpPackageVersion>8.1.3</LINGYUNAbpPackageVersion> <LINGYUNAbpPackageVersion>8.2.0</LINGYUNAbpPackageVersion>
<MicrosoftExtensionsPackageVersion>8.0.0</MicrosoftExtensionsPackageVersion> <MicrosoftExtensionsPackageVersion>8.0.0</MicrosoftExtensionsPackageVersion>
<MicrosoftAspNetCorePackageVersion>8.0.0</MicrosoftAspNetCorePackageVersion> <MicrosoftAspNetCorePackageVersion>8.0.0</MicrosoftAspNetCorePackageVersion>
<MicrosoftEntityFrameworkCorePackageVersion>8.0.0</MicrosoftEntityFrameworkCorePackageVersion> <MicrosoftEntityFrameworkCorePackageVersion>8.0.0</MicrosoftEntityFrameworkCorePackageVersion>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup> </PropertyGroup>
<!-- Abp Framework --> <!-- Abp Framework -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.0.5" /> <PackageVersion Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.2.0" />
<PackageVersion Include="Volo.Abp.Core" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Core" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.Account.Application" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Account.Application" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.Account.Application.Contracts" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Account.Application.Contracts" Version="$(VoloAbpPackageVersion)" />
@ -133,10 +132,9 @@
<PackageVersion Include="Volo.Abp.Users.Domain.Shared" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Users.Domain.Shared" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.Validation" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Validation" Version="$(VoloAbpPackageVersion)" />
</ItemGroup> </ItemGroup>
<!-- .NET --> <!-- .NET -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(MicrosoftAspNetCorePackageVersion)" /> <PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(MicrosoftAspNetCorePackageVersion)" /> <PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="$(MicrosoftAspNetCorePackageVersion)" /> <PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="$(MicrosoftAspNetCorePackageVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="$(MicrosoftAspNetCorePackageVersion)" /> <PackageVersion Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="$(MicrosoftAspNetCorePackageVersion)" />
@ -152,9 +150,8 @@
<PackageVersion Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsPackageVersion)" /> <PackageVersion Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsPackageVersion)" /> <PackageVersion Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsPackageVersion)" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsPackageVersion)" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
</ItemGroup> </ItemGroup>
<!-- Elsa --> <!-- Elsa -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="Elsa" Version="$(ElsaPackageVersion)" /> <PackageVersion Include="Elsa" Version="$(ElsaPackageVersion)" />
@ -172,7 +169,6 @@
<PackageVersion Include="Elsa.Webhooks.Persistence.EntityFramework.MySql" Version="$(ElsaPackageVersion)" /> <PackageVersion Include="Elsa.Webhooks.Persistence.EntityFramework.MySql" Version="$(ElsaPackageVersion)" />
<PackageVersion Include="Elsa.WorkflowSettings.Persistence.EntityFramework.MySql" Version="$(ElsaPackageVersion)" /> <PackageVersion Include="Elsa.WorkflowSettings.Persistence.EntityFramework.MySql" Version="$(ElsaPackageVersion)" />
</ItemGroup> </ItemGroup>
<!-- DotNetCore.CAP --> <!-- DotNetCore.CAP -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="DotNetCore.CAP" Version="$(DotNetCoreCAPPackageVersion)" /> <PackageVersion Include="DotNetCore.CAP" Version="$(DotNetCoreCAPPackageVersion)" />
@ -181,7 +177,6 @@
<PackageVersion Include="DotNetCore.CAP.OpenTelemetry" Version="$(DotNetCoreCAPPackageVersion)" /> <PackageVersion Include="DotNetCore.CAP.OpenTelemetry" Version="$(DotNetCoreCAPPackageVersion)" />
<PackageVersion Include="DotNetCore.CAP.RabbitMQ" Version="$(DotNetCoreCAPPackageVersion)" /> <PackageVersion Include="DotNetCore.CAP.RabbitMQ" Version="$(DotNetCoreCAPPackageVersion)" />
</ItemGroup> </ItemGroup>
<!-- Serilog --> <!-- Serilog -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="Serilog" Version="3.1.1" /> <PackageVersion Include="Serilog" Version="3.1.1" />
@ -198,7 +193,6 @@
<PackageVersion Include="Serilog.Sinks.Elasticsearch" Version="9.0.3" /> <PackageVersion Include="Serilog.Sinks.Elasticsearch" Version="9.0.3" />
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
</ItemGroup> </ItemGroup>
<!-- Test --> <!-- Test -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="coverlet.collector" Version="6.0.0" /> <PackageVersion Include="coverlet.collector" Version="6.0.0" />
@ -210,13 +204,11 @@
<PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" /> <PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" /> <PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" />
</ItemGroup> </ItemGroup>
<!-- Fody --> <!-- Fody -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="ConfigureAwait.Fody" Version="3.3.2" /> <PackageVersion Include="ConfigureAwait.Fody" Version="3.3.2" />
<PackageVersion Include="Fody" Version="6.8.0" /> <PackageVersion Include="Fody" Version="6.8.0" />
</ItemGroup> </ItemGroup>
<!-- Other --> <!-- Other -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="aliyun-net-sdk-core" Version="1.5.10" /> <PackageVersion Include="aliyun-net-sdk-core" Version="1.5.10" />
@ -228,7 +220,7 @@
<PackageVersion Include="DistributedLock.Core" Version="1.0.5" /> <PackageVersion Include="DistributedLock.Core" Version="1.0.5" />
<PackageVersion Include="DistributedLock.Redis" Version="1.0.2" /> <PackageVersion Include="DistributedLock.Redis" Version="1.0.2" />
<PackageVersion Include="Hangfire.MySqlStorage" Version="2.0.3" /> <PackageVersion Include="Hangfire.MySqlStorage" Version="2.0.3" />
<PackageVersion Include="HangFire.SqlServer" Version="1.8.6" /> <PackageVersion Include="HangFire.SqlServer" Version="1.8.14" />
<PackageVersion Include="IdentityModel" Version="6.2.0" /> <PackageVersion Include="IdentityModel" Version="6.2.0" />
<PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" /> <PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" />
<PackageVersion Include="Markdig" Version="0.34.0" /> <PackageVersion Include="Markdig" Version="0.34.0" />
@ -236,6 +228,8 @@
<PackageVersion Include="NEST" Version="7.15.1" /> <PackageVersion Include="NEST" Version="7.15.1" />
<PackageVersion Include="NRules" Version="0.9.2" /> <PackageVersion Include="NRules" Version="0.9.2" />
<PackageVersion Include="Ocelot.Provider.Polly" Version="20.0.0" /> <PackageVersion Include="Ocelot.Provider.Polly" Version="20.0.0" />
<PackageVersion Include="OpenIddict.Server.DataProtection" Version="5.5.0" />
<PackageVersion Include="OpenIddict.Validation.DataProtection" Version="5.5.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" /> <PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.8.1" /> <PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" /> <PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" />

2
apps/vue/src/api/abp/localization/index.ts

@ -5,7 +5,7 @@ export const GetAsyncByInput = (input: {
onlyDynamics?: boolean; onlyDynamics?: boolean;
}) => { }) => {
return defHttp.get<ApplicationLocalizationDto>({ return defHttp.get<ApplicationLocalizationDto>({
url: 'api/abp/application-localization"', url: '/api/abp/application-localization"',
params: input, params: input,
}); });
}; };

23
apps/vue/src/api/account/profiles/index.ts

@ -12,7 +12,9 @@ import {
AuthenticatorDto, AuthenticatorDto,
VerifyAuthenticatorCodeInput, VerifyAuthenticatorCodeInput,
AuthenticatorRecoveryCodeDto, AuthenticatorRecoveryCodeDto,
GetUserSessionsInput,
} from './model'; } from './model';
import { IdentitySessionDto } from '../../identity/sessions/model';
export const get = () => { export const get = () => {
return defHttp.get<MyProfile>({ return defHttp.get<MyProfile>({
@ -93,3 +95,24 @@ export const resetAuthenticator = () => {
url: '/api/account/my-profile/reset-authenticator', url: '/api/account/my-profile/reset-authenticator',
}); });
} }
/**
*
* @param { GetUserSessionsInput } input
* @returns { Promise<PagedResultDto<IdentitySessionDto>> }
*/
export const getSessions = (input?: GetUserSessionsInput): Promise<PagedResultDto<IdentitySessionDto>> => {
return defHttp.get<PagedResultDto<IdentitySessionDto>>({
url: '/api/account/my-profile/sessions',
params: input,
});
};
/**
*
* @param { string } sessionId id
* @returns { Promise<void> }
*/
export const revokeSession = (sessionId: string): Promise<void> => {
return defHttp.delete<void>({
url: `/api/account/my-profile/sessions/${sessionId}/revoke`,
});
}

5
apps/vue/src/api/account/profiles/model/index.ts

@ -61,3 +61,8 @@ interface Profile extends ExtensibleObject, IHasConcurrencyStamp {
authenticatorCode: string; authenticatorCode: string;
} }
export interface GetUserSessionsInput extends PagedAndSortedResultRequestDto {
device?: string;
clientId?: string;
}

2
apps/vue/src/api/auditing/security-logs/index.ts

@ -15,7 +15,7 @@ export const getById = (id: string) => {
export const getList = (input: GetSecurityLogPagedRequest) => { export const getList = (input: GetSecurityLogPagedRequest) => {
return defHttp.get<PagedResultDto<SecurityLog>>({ return defHttp.get<PagedResultDto<SecurityLog>>({
url: 'api/auditing/security-log', url: '/api/auditing/security-log',
params: input, params: input,
}); });
}; };

2
apps/vue/src/api/identity/claims/index.ts

@ -29,7 +29,7 @@ export const update = (id: string, input: UpdateIdentityClaimType) => {
export const getById = (id: string) => { export const getById = (id: string) => {
return defHttp.get<IdentityClaimType>({ return defHttp.get<IdentityClaimType>({
url: `'/api/identity/claim-types/${id}'`, url: `/api/identity/claim-types/${id}'`,
}); });
}; };

2
apps/vue/src/api/identity/organization-units/index.ts

@ -88,7 +88,7 @@ export const getAll = () => {
export const move = (id: string, parentId?: string) => { export const move = (id: string, parentId?: string) => {
return defHttp.put<void>({ return defHttp.put<void>({
url: `api/identity/organization-units/${id}/move`, url: `/api/identity/organization-units/${id}/move`,
data: { data: {
parentId: parentId, parentId: parentId,
}, },

27
apps/vue/src/api/identity/sessions/index.ts

@ -0,0 +1,27 @@
import { defHttp } from '/@/utils/http/axios';
import {
IdentitySessionDto,
GetUserSessionsInput
} from './model';
/**
*
* @param { GetUserSessionsInput } input
* @returns { Promise<PagedResultDto<IdentitySessionDto>> }
*/
export const getSessions = (input?: GetUserSessionsInput): Promise<PagedResultDto<IdentitySessionDto>> => {
return defHttp.get<PagedResultDto<IdentitySessionDto>>({
url: '/api/identity/sessions',
params: input,
});
};
/**
*
* @param { string } sessionId id
* @returns { Promise<void> }
*/
export const revokeSession = (sessionId: string): Promise<void> => {
return defHttp.delete<void>({
url: `/api/identity/sessions/${sessionId}/revoke`,
});
}

16
apps/vue/src/api/identity/sessions/model/index.ts

@ -0,0 +1,16 @@
export interface IdentitySessionDto extends EntityDto<string> {
sessionId: string;
device: string;
deviceInfo: string;
userId: string;
clientId?: string;
ipAddresses?: string;
signedIn: Date;
lastAccessed?: Date;
}
export interface GetUserSessionsInput extends PagedAndSortedResultRequestDto {
userId?: string;
device?: string;
clientId?: string;
}

2
apps/vue/src/api/localization/languages/index.ts

@ -16,7 +16,7 @@ export const getByName = (name: string) => {
export const create = (input: LanguageCreate) => { export const create = (input: LanguageCreate) => {
return defHttp.post<Language>({ return defHttp.post<Language>({
url: '/api/abp/localization/languages', url: '/api/localization/languages',
data: input, data: input,
}); });
}; };

2
apps/vue/src/api/messages/friends/index.ts

@ -9,7 +9,7 @@ import {
export const create = (input: FriendCreateRequest) => { export const create = (input: FriendCreateRequest) => {
return defHttp.post<void>({ return defHttp.post<void>({
url: 'api/im/my-friends', url: '/api/im/my-friends',
data: input, data: input,
}); });
}; };

2
apps/vue/src/api/messages/groups/index.ts

@ -10,6 +10,6 @@ export const search = (input: GroupSearchRequest) => {
export const getById = (groupId: string) => { export const getById = (groupId: string) => {
return defHttp.get<Group>({ return defHttp.get<Group>({
url: `'/api/im/groups/${groupId}`, url: `/api/im/groups/${groupId}`,
}); });
}; };

4
apps/vue/src/api/multi-tenancy/tenants/index.ts

@ -3,12 +3,12 @@ import { FindTenantResult } from './model';
export const findTenantByName = (name: string) => { export const findTenantByName = (name: string) => {
return defHttp.get<FindTenantResult>({ return defHttp.get<FindTenantResult>({
url: `api/abp/multi-tenancy/tenants/by-name/${name}` url: `/api/abp/multi-tenancy/tenants/by-name/${name}`
}); });
}; };
export const findTenantById = (id: string) => { export const findTenantById = (id: string) => {
return defHttp.get<FindTenantResult>({ return defHttp.get<FindTenantResult>({
url: `api/abp/multi-tenancy/tenants/by-id/${id}` url: `/api/abp/multi-tenancy/tenants/by-id/${id}`
}); });
}; };

74
apps/vue/src/layouts/default/header/components/notify/NoticeList.vue

@ -1,11 +1,11 @@
<template> <template>
<a-list :class="prefixCls" bordered :pagination="getPagination"> <List :class="prefixCls" bordered :pagination="getPagination">
<template v-for="item in getData" :key="item.id"> <template v-for="item in getData" :key="item.id">
<a-list-item class="list-item"> <ListItem class="list-item">
<a-list-item-meta> <ListItemMeta>
<template #title> <template #title>
<div class="title"> <div class="title">
<a-typography-paragraph <TypographyParagraph
@click="handleTitleClick(item)" @click="handleTitleClick(item)"
style="width: 100%; margin-bottom: 0 !important" style="width: 100%; margin-bottom: 0 !important"
:style="{ cursor: isTitleClickable ? 'pointer' : '' }" :style="{ cursor: isTitleClickable ? 'pointer' : '' }"
@ -18,22 +18,22 @@
:content="item.title" :content="item.title"
/> />
<div class="extra" v-if="item.extra"> <div class="extra" v-if="item.extra">
<a-tag class="tag" :color="item.color"> <Tag class="tag" :color="item.color">
{{ item.extra }} {{ item.extra }}
</a-tag> </Tag>
</div> </div>
</div> </div>
</template> </template>
<template #avatar> <template #avatar>
<a-avatar v-if="item.avatar" class="avatar" :src="item.avatar" /> <Avatar v-if="item.avatar" class="avatar" :src="item.avatar" />
<span v-else> {{ item.avatar }}</span> <span v-else> {{ item.avatar }}</span>
</template> </template>
<template #description> <template #description>
<div> <div>
<div class="description" v-if="item.description"> <div class="description" v-if="item.description">
<a-typography-paragraph <TypographyParagraph
@click="handleContentClick(item)" @click="handleContentClick(item)"
style="width: 100%; margin-bottom: 0 !important" style="width: 100%; margin-bottom: 0 !important"
:style="{ cursor: isContentClickable ? 'pointer' : '' }" :style="{ cursor: isContentClickable ? 'pointer' : '' }"
@ -50,31 +50,28 @@
</div> </div>
</div> </div>
</template> </template>
</a-list-item-meta> </ListItemMeta>
</a-list-item> </ListItem>
</template> </template>
<template #footer> <template #footer>
<slot name="footer"></slot> <slot name="footer"></slot>
</template> </template>
</a-list> </List>
</template> </template>
<script lang="ts"> <script lang="ts" setup>
import { computed, defineComponent, PropType, ref, watch, unref } from 'vue'; import { computed, PropType, ref, watchEffect, unref } from 'vue';
import { ListItem } from './data'; import { ListItem } from './data';
import { useDesign } from '/@/hooks/web/useDesign'; import { useDesign } from '/@/hooks/web/useDesign';
import { List, Avatar, Tag, Typography } from 'ant-design-vue'; import { List, Avatar, Tag, Typography } from 'ant-design-vue';
import { NotificationContentType } from '/@/api/messages/notifications/model'; import { NotificationContentType } from '/@/api/messages/notifications/model';
import { isNumber } from '/@/utils/is'; import { isNumber } from '/@/utils/is';
export default defineComponent({
components: { const TypographyParagraph = Typography.Paragraph;
[Avatar.name]: Avatar, const ListItem = List.Item;
[List.name]: List, const ListItemMeta = List.Item.Meta;
[List.Item.name]: List.Item,
AListItemMeta: List.Item.Meta, const emits = defineEmits(['update:currentPage']);
ATypographyParagraph: Typography.Paragraph, const props = defineProps({
[Tag.name]: Tag,
},
props: {
list: { list: {
type: Array as PropType<ListItem[]>, type: Array as PropType<ListItem[]>,
default: () => [], default: () => [],
@ -100,10 +97,9 @@
}, },
onContentClick: { onContentClick: {
type: Function as PropType<(Recordable) => void>, type: Function as PropType<(Recordable) => void>,
}, }
}, });
emits: ['update:currentPage'],
setup(props, { emit }) {
const { prefixCls } = useDesign('header-notify-list'); const { prefixCls } = useDesign('header-notify-list');
const current = ref(props.currentPage || 1); const current = ref(props.currentPage || 1);
const getData = computed(() => { const getData = computed(() => {
@ -125,12 +121,9 @@
} }
}; };
}); });
watch( watchEffect(() => {
() => props.currentPage, current.value = props.currentPage;
(v) => { });
current.value = v;
},
);
const isTitleClickable = computed(() => !!props.onTitleClick); const isTitleClickable = computed(() => !!props.onTitleClick);
const isContentClickable = computed(() => !!props.onContentClick); const isContentClickable = computed(() => !!props.onContentClick);
const getPagination = computed(() => { const getPagination = computed(() => {
@ -145,7 +138,7 @@
current: unref(current), current: unref(current),
onChange(page) { onChange(page) {
current.value = page; current.value = page;
emit('update:currentPage', page); emits('update:currentPage', page);
}, },
}; };
} else { } else {
@ -160,19 +153,6 @@
function handleContentClick(item: ListItem) { function handleContentClick(item: ListItem) {
props.onContentClick && props.onContentClick(item); props.onContentClick && props.onContentClick(item);
} }
return {
prefixCls,
getPagination,
getData,
getContent,
handleTitleClick,
isTitleClickable,
handleContentClick,
isContentClickable,
};
},
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@prefix-cls: ~'@{namespace}-header-notify-list'; @prefix-cls: ~'@{namespace}-header-notify-list';

74
apps/vue/src/layouts/default/header/components/notify/index.vue

@ -1,6 +1,6 @@
<template> <template>
<div :class="prefixCls"> <div :class="prefixCls">
<Badge :count="count" dot :numberStyle="numberStyle"> <Badge :count="count" dot :numberStyle="{}">
<BellOutlined @click="showDrawer" /> <BellOutlined @click="showDrawer" />
</Badge> </Badge>
<Drawer <Drawer
@ -39,44 +39,11 @@
</TabPane> </TabPane>
</Tabs> </Tabs>
</Drawer> </Drawer>
<!-- <Popover title="" trigger="click" :overlayClassName="`${prefixCls}__overlay`">
<Badge :count="count" dot :numberStyle="numberStyle">
<BellOutlined />
</Badge>
<template #content>
<Tabs>
<TabPane :key="notifierRef.key" :tab="notifierRef.name">
<NoticeList :list="notifierRef.list" @title-click="readNotifer" />
</TabPane>
<TabPane :key="messageRef.key" :tab="messageRef.name">
<NoticeList :list="messageRef.list">
<template #footer>
<ButtonGroup style="width: 100%">
<Button
:disabled="messageRef.list.length === 0"
style="width: 50%"
type="link"
@click="clearMessage"
>清空消息</Button
>
<Button style="width: 50%" type="link" @click="handleShowMessages"
>查看更多</Button
>
</ButtonGroup>
</template>
</NoticeList>
</TabPane>
<TabPane :key="tasksRef.key" :tab="tasksRef.name">
<NoticeList :list="tasksRef.list" />
</TabPane>
</Tabs>
</template>
</Popover> -->
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts" setup>
import { computed, defineComponent, ref } from 'vue'; import { computed, ref } from 'vue';
import { Button, Drawer, Popover, Tabs, Badge } from 'ant-design-vue'; import { Button, Drawer, Tabs, Badge } from 'ant-design-vue';
import { BellOutlined } from '@ant-design/icons-vue'; import { BellOutlined } from '@ant-design/icons-vue';
import NoticeList from './NoticeList.vue'; import NoticeList from './NoticeList.vue';
import { useGo } from '/@/hooks/web/usePage'; import { useGo } from '/@/hooks/web/usePage';
@ -85,19 +52,9 @@
import { useMessages } from './useMessages'; import { useMessages } from './useMessages';
import { useNotifications } from './useNotifications'; import { useNotifications } from './useNotifications';
export default defineComponent({ const ButtonGroup = Button.Group;
components: { const TabPane = Tabs.TabPane;
Button,
ButtonGroup: Button.Group,
Drawer,
Popover,
BellOutlined,
Tabs,
TabPane: Tabs.TabPane,
Badge,
NoticeList,
},
setup() {
const { prefixCls } = useDesign('header-notify'); const { prefixCls } = useDesign('header-notify');
const go = useGo(); const go = useGo();
const open = ref(false); const open = ref(false);
@ -129,23 +86,6 @@
console.log('showDrawer'); console.log('showDrawer');
open.value = true; open.value = true;
} }
return {
prefixCls,
count,
numberStyle: {},
open,
showDrawer,
notifierRef,
readNotifer,
messageRef,
clearMessage,
tasksRef,
handleShowMessages,
handleShowNotifications,
};
},
});
</script> </script>
<style lang="less"> <style lang="less">
@prefix-cls: ~'@{namespace}-header-notify'; @prefix-cls: ~'@{namespace}-header-notify';

13
apps/vue/src/layouts/default/header/components/notify/useNotifications.ts

@ -44,6 +44,10 @@ export function useNotifications() {
}); });
function onNotifyReceived(notificationInfo: NotificationInfo, notifer?: boolean) { function onNotifyReceived(notificationInfo: NotificationInfo, notifer?: boolean) {
if (notificationInfo.type === NotificationType.ServiceCallback) {
emitter.emit(NotifyEventEnum.NOTIFICATIONS_SERVICE_CALLBACK, notificationInfo);
return;
}
const { data } = notificationInfo; const { data } = notificationInfo;
let title = data.extraProperties.title; let title = data.extraProperties.title;
let message = data.extraProperties.message; let message = data.extraProperties.message;
@ -83,17 +87,10 @@ export function useNotifications() {
contentType: notificationInfo.contentType, contentType: notificationInfo.contentType,
}; };
if (notifer && notificationInfo.type !== NotificationType.ServiceCallback) { notifer && _notification(notifier, notificationInfo.severity);
_notification(notifier, notificationInfo.severity);
}
if (notificationInfo.type === NotificationType.ServiceCallback) {
emitter.emit(NotifyEventEnum.NOTIFICATIONS_SERVICE_CALLBACK, notificationInfo);
} else {
emitter.emit(NotifyEventEnum.NOTIFICATIONS_RECEVIED, notificationInfo); emitter.emit(NotifyEventEnum.NOTIFICATIONS_RECEVIED, notificationInfo);
notifierRef.value.list.push(notifier); notifierRef.value.list.push(notifier);
} }
}
function _notification(notifier: Notification, severity: NotificationSeverity) { function _notification(notifier: Notification, severity: NotificationSeverity) {

16
apps/vue/src/layouts/default/header/components/user-dropdown/index.vue

@ -26,6 +26,11 @@
:text="t('AbpAuditLogging.SecurityLog')" :text="t('AbpAuditLogging.SecurityLog')"
icon="ant-design:security-scan-outlined" icon="ant-design:security-scan-outlined"
/> />
<MenuItem
key="sessions"
:text="t('AbpIdentity.IdentitySessions')"
icon="carbon:prompt-session"
/>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
v-if="getUseLockPage" v-if="getUseLockPage"
@ -42,6 +47,7 @@
</template> </template>
</Dropdown> </Dropdown>
<LockAction @register="register" /> <LockAction @register="register" />
<SessionModal @register="registerSessionModal" />
<SecurityLogsModal @register="registerSecurityLogsModal" /> <SecurityLogsModal @register="registerSecurityLogsModal" />
</template> </template>
<script lang="ts"> <script lang="ts">
@ -67,7 +73,7 @@
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
type MenuEvent = 'logout' | 'doc' | 'lock' | 'setting' | 'center' | 'security-logs'; type MenuEvent = 'logout' | 'doc' | 'lock' | 'setting' | 'center' | 'sessions' | 'security-logs';
export default defineComponent({ export default defineComponent({
name: 'UserDropdown', name: 'UserDropdown',
@ -77,6 +83,9 @@
MenuItem: createAsyncComponent(() => import('./DropMenuItem.vue')), MenuItem: createAsyncComponent(() => import('./DropMenuItem.vue')),
MenuDivider: Menu.Divider, MenuDivider: Menu.Divider,
LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')), LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')),
SessionModal: createAsyncComponent(
() => import('/@/views/account/sessions/index.vue'),
),
SecurityLogsModal: createAsyncComponent( SecurityLogsModal: createAsyncComponent(
() => import('/@/views/account/security-logs/index.vue'), () => import('/@/views/account/security-logs/index.vue'),
), ),
@ -107,6 +116,7 @@
}); });
const [register, { openModal }] = useModal(); const [register, { openModal }] = useModal();
const [registerSessionModal, { openModal: openSessionModal }] = useModal();
const [registerSecurityLogsModal, { openModal: openSecurityLogsModal }] = useModal(); const [registerSecurityLogsModal, { openModal: openSecurityLogsModal }] = useModal();
function handleLock() { function handleLock() {
@ -140,6 +150,9 @@
case 'center': case 'center':
go('/account/center'); go('/account/center');
break; break;
case 'sessions':
openSessionModal(true, {});
break;
case 'security-logs': case 'security-logs':
openSecurityLogsModal(true, {}); openSecurityLogsModal(true, {});
break; break;
@ -154,6 +167,7 @@
getShowDoc, getShowDoc,
register, register,
getUseLockPage, getUseLockPage,
registerSessionModal,
registerSecurityLogsModal, registerSecurityLogsModal,
}; };
}, },

49
apps/vue/src/views/account/security-logs/index.vue

@ -9,45 +9,23 @@
:can-fullscreen="false" :can-fullscreen="false"
:show-ok-btn="false" :show-ok-btn="false"
> >
<Card style="height: 100%">
<div :style="getContentStyle" ref="contentWrapRef"> <div :style="getContentStyle" ref="contentWrapRef">
<ScrollContainer ref="contentScrollRef"> <ScrollContainer ref="contentScrollRef">
<template v-for="securityLog in securityLogs" :key="securityLog.id"> <template v-for="securityLog in securityLogs" :key="securityLog.id">
<CardGrid> <Card hoverable style="height: 100%; margin-bottom: 15px;">
<Form <Descriptions bordered size="small" :column="1">
layout="horizontal" <DescriptionItem :label="L('ApplicationName')">{{ securityLog.applicationName }}</DescriptionItem>
:colon="false" <DescriptionItem :label="L('Identity')">{{ securityLog.identity }}</DescriptionItem>
:model="securityLog" <DescriptionItem :label="L('Actions')">{{ securityLog.action }}</DescriptionItem>
:labelCol="{ span: 4 }" <DescriptionItem :label="L('ClientId')">{{ securityLog.clientId }}</DescriptionItem>
:wrapperCol="{ span: 16 }" <DescriptionItem :label="L('ClientIpAddress')">{{ securityLog.clientIpAddress }}</DescriptionItem>
> <DescriptionItem :label="L('BrowserInfo')">{{ formatToDateTime(securityLog.browserInfo) }}</DescriptionItem>
<FormItem labelAlign="left" :label="L('ApplicationName')"> <DescriptionItem :label="L('CreationTime')">{{ formatToDateTime(securityLog.creationTime) }}</DescriptionItem>
<span>{{ securityLog.applicationName }}</span> </Descriptions>
</FormItem> </Card>
<FormItem labelAlign="left" :label="L('Identity')">
<span>{{ securityLog.identity }}</span>
</FormItem>
<FormItem labelAlign="left" :label="L('Actions')">
<span>{{ securityLog.action }}</span>
</FormItem>
<FormItem labelAlign="left" :label="L('ClientId')">
<span>{{ securityLog.clientId }}</span>
</FormItem>
<FormItem labelAlign="left" :label="L('ClientIpAddress')">
<span>{{ securityLog.clientIpAddress }}</span>
</FormItem>
<FormItem labelAlign="left" :label="L('BrowserInfo')">
<span>{{ securityLog.browserInfo }}</span>
</FormItem>
<FormItem labelAlign="left" :label="L('CreationTime')">
<span>{{ formatToDateTime(securityLog.creationTime) }}</span>
</FormItem>
</Form>
</CardGrid>
</template> </template>
</ScrollContainer> </ScrollContainer>
</div> </div>
</Card>
<template #footer> <template #footer>
<APagination <APagination
ref="paginationRef" ref="paginationRef"
@ -63,7 +41,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { CSSProperties } from 'vue'; import type { CSSProperties } from 'vue';
import { computed, ref } from 'vue'; import { computed, ref } from 'vue';
import { Card, Form, Pagination } from 'ant-design-vue'; import { Card, Descriptions, Pagination } from 'ant-design-vue';
import { BasicModal, useModalInner } from '/@/components/Modal'; import { BasicModal, useModalInner } from '/@/components/Modal';
import { ScrollContainer } from '/@/components/Container'; import { ScrollContainer } from '/@/components/Container';
import { useLocalization } from '/@/hooks/abp/useLocalization'; import { useLocalization } from '/@/hooks/abp/useLocalization';
@ -74,9 +52,8 @@
import { formatPagedRequest } from '/@/utils/http/abp/helper'; import { formatPagedRequest } from '/@/utils/http/abp/helper';
import { formatToDateTime } from '/@/utils/dateUtil'; import { formatToDateTime } from '/@/utils/dateUtil';
const CardGrid = Card.Grid;
const FormItem = Form.Item;
const APagination = Pagination; const APagination = Pagination;
const DescriptionItem = Descriptions.Item;
const props = defineProps({ const props = defineProps({
autoContentHeight: { autoContentHeight: {

141
apps/vue/src/views/account/sessions/index.vue

@ -0,0 +1,141 @@
<template>
<BasicModal
v-bind="$attrs"
@register="registerModal"
:width="800"
:height="500"
:title="L('IdentitySessions')"
:mask-closable="false"
:can-fullscreen="false"
:show-ok-btn="false"
>
<div :style="getContentStyle" ref="contentWrapRef" class="session">
<ScrollContainer ref="contentScrollRef">
<template v-for="identitySession in identitySessions" :key="identitySession.id">
<Card style="height: 100%">
<template #title>
<div class="session__tile">
<span>{{ identitySession.device }}</span>
<div style="padding-left: 5px;">
<Tag
v-if="identitySession.sessionId === abpStore.getApplication.currentUser.sessionId"
color="#87d068"
>{{ L('CurrentSession') }}</Tag>
</div>
</div>
</template>
<Descriptions bordered size="small" :column="1">
<DescriptionItem :label="L('DisplayName:SessionId')">{{ identitySession.sessionId }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:Device')">{{ identitySession.device }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:DeviceInfo')">{{ identitySession.deviceInfo }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:ClientId')">{{ identitySession.clientId }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:IpAddresses')">{{ identitySession.ipAddresses }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:SignedIn')">{{ formatToDateTime(identitySession.signedIn) }}</DescriptionItem>
<DescriptionItem v-if="identitySession.lastAccessed" :label="L('DisplayName:LastAccessed')">{{ formatToDateTime(identitySession.lastAccessed) }}</DescriptionItem>
</Descriptions>
<template #extra>
<Button
v-if="identitySession.sessionId !== abpStore.getApplication.currentUser.sessionId"
danger
@click="handleRevokeSession(identitySession)"
>{{ L('RevokeSession') }}</Button>
</template>
</Card>
</template>
</ScrollContainer>
</div>
<template #footer>
<APagination
ref="paginationRef"
:pageSizeOptions="['10', '25', '50', '100']"
:total="identitySessionTotal"
@change="fetchSessions"
@showSizeChange="fetchSessions"
/>
</template>
</BasicModal>
</template>
<script lang="ts" setup>
import type { CSSProperties } from 'vue';
import { computed, ref } from 'vue';
import { Button, Card, Descriptions, Pagination, Tag } from 'ant-design-vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { ScrollContainer } from '/@/components/Container';
import { useMessage } from '/@/hooks/web/useMessage';
import { useLocalization } from '/@/hooks/abp/useLocalization';
import { useContentHeight } from '/@/hooks/web/useContentHeight';
import { useAbpStoreWithOut } from '/@/store/modules/abp';
import { getSessions, revokeSession } from '/@/api/account/profiles';
import { IdentitySessionDto } from '/@/api/identity/sessions/model';
import { formatPagedRequest } from '/@/utils/http/abp/helper';
import { formatToDateTime } from '/@/utils/dateUtil';
const DescriptionItem = Descriptions.Item;
const APagination = Pagination;
const props = defineProps({
autoContentHeight: {
type: Boolean,
default: true,
},
});
const contentWrapRef = ref<any>();
const contentScrollRef = ref<any>();
const paginationRef = ref<any>();
const getContentHeight = computed(() => props.autoContentHeight);
const { contentHeight } = useContentHeight(getContentHeight, contentWrapRef, [paginationRef], []);
const getContentStyle = computed((): CSSProperties => {
return {
width: '100%',
height: `${contentHeight.value}px`,
};
});
const identitySessions = ref<IdentitySessionDto[]>([]);
const identitySessionTotal = ref(0);
const abpStore = useAbpStoreWithOut();
const { createConfirm, createMessage } = useMessage();
const { L } = useLocalization(['AbpIdentity', 'AbpUi']);
const [registerModal] = useModalInner(() => {
fetchSessions();
});
function fetchSessions(page: number = 1, pageSize: number = 10) {
const request = {
skipCount: page,
maxResultCount: pageSize,
};
formatPagedRequest(request);
getSessions({
skipCount: request.skipCount,
maxResultCount: request.maxResultCount,
}).then((res) => {
identitySessions.value = res.items;
identitySessionTotal.value = res.totalCount;
});
}
function handleRevokeSession(session: IdentitySessionDto) {
createConfirm({
iconType: 'warning',
title: L('AreYouSure'),
content: L('SessionWillBeRevokedMessage'),
onOk: async () => {
await revokeSession(session.sessionId);
createMessage.success(L('SuccessfullyRevoked'));
fetchSessions();
},
});
}
</script>
<style lang="less" scoped>
.session {
.session__tile {
display: flex;
flex-direction: row;
}
}
</style>

150
apps/vue/src/views/identity/user/components/SessionModal.vue

@ -0,0 +1,150 @@
<template>
<BasicModal
v-bind="$attrs"
@register="registerModal"
:width="800"
:height="500"
:title="L('IdentitySessions')"
:mask-closable="false"
:can-fullscreen="false"
:show-ok-btn="false"
>
<div v-if="identitySessions.length <= 0">
<Empty />
</div>
<div v-else :style="getContentStyle" ref="contentWrapRef" class="session">
<ScrollContainer ref="contentScrollRef">
<template v-for="identitySession in identitySessions" :key="identitySession.id">
<Card style="height: 100%">
<template #title>
<div class="session__tile">
<span>{{ identitySession.device }}</span>
<div style="padding-left: 5px;">
<Tag
v-if="identitySession.sessionId === abpStore.getApplication.currentUser.sessionId"
color="#87d068"
>{{ L('CurrentSession') }}</Tag>
</div>
</div>
</template>
<Descriptions bordered size="small" :column="1">
<DescriptionItem :label="L('DisplayName:SessionId')">{{ identitySession.sessionId }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:Device')">{{ identitySession.device }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:DeviceInfo')">{{ identitySession.deviceInfo }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:ClientId')">{{ identitySession.clientId }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:IpAddresses')">{{ identitySession.ipAddresses }}</DescriptionItem>
<DescriptionItem :label="L('DisplayName:SignedIn')">{{ formatToDateTime(identitySession.signedIn) }}</DescriptionItem>
<DescriptionItem v-if="identitySession.lastAccessed" :label="L('DisplayName:LastAccessed')">{{ formatToDateTime(identitySession.lastAccessed) }}</DescriptionItem>
</Descriptions>
<template #extra>
<Button
v-auth="['AbpIdentity.IdentitySessions.Revoke']"
v-if="identitySession.sessionId !== abpStore.getApplication.currentUser.sessionId"
danger
@click="handleRevokeSession(identitySession)"
>{{ L('RevokeSession') }}</Button>
</template>
</Card>
</template>
</ScrollContainer>
</div>
<template #footer>
<APagination
v-if="identitySessions.length > 0"
ref="paginationRef"
:pageSizeOptions="['10', '25', '50', '100']"
:total="identitySessionTotal"
@change="fetchSessions"
@showSizeChange="fetchSessions"
/>
</template>
</BasicModal>
</template>
<script lang="ts" setup>
import type { CSSProperties } from 'vue';
import { computed, ref } from 'vue';
import { Button, Card, Descriptions, Empty, Pagination, Tag } from 'ant-design-vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { ScrollContainer } from '/@/components/Container';
import { useMessage } from '/@/hooks/web/useMessage';
import { useLocalization } from '/@/hooks/abp/useLocalization';
import { useContentHeight } from '/@/hooks/web/useContentHeight';
import { useAbpStoreWithOut } from '/@/store/modules/abp';
import { getSessions, revokeSession } from '/@/api/identity/sessions';
import { IdentitySessionDto } from '/@/api/identity/sessions/model';
import { formatPagedRequest } from '/@/utils/http/abp/helper';
import { formatToDateTime } from '/@/utils/dateUtil';
const DescriptionItem = Descriptions.Item;
const APagination = Pagination;
const props = defineProps({
autoContentHeight: {
type: Boolean,
default: true,
},
});
const userId = ref('');
const contentWrapRef = ref<any>();
const contentScrollRef = ref<any>();
const paginationRef = ref<any>();
const getContentHeight = computed(() => props.autoContentHeight);
const { contentHeight } = useContentHeight(getContentHeight, contentWrapRef, [paginationRef], []);
const getContentStyle = computed((): CSSProperties => {
return {
width: '100%',
height: `${contentHeight.value}px`,
};
});
const identitySessions = ref<IdentitySessionDto[]>([]);
const identitySessionTotal = ref(0);
const abpStore = useAbpStoreWithOut();
const { createConfirm, createMessage } = useMessage();
const { L } = useLocalization(['AbpIdentity', 'AbpUi']);
const [registerModal] = useModalInner((data: { userId: string }) => {
userId.value = data.userId;
identitySessions.value = [];
fetchSessions();
});
function fetchSessions(page: number = 1, pageSize: number = 10) {
const request = {
skipCount: page,
maxResultCount: pageSize,
};
formatPagedRequest(request);
getSessions({
userId: userId.value,
skipCount: request.skipCount,
maxResultCount: request.maxResultCount,
}).then((res) => {
identitySessions.value = res.items;
identitySessionTotal.value = res.totalCount;
});
}
function handleRevokeSession(session: IdentitySessionDto) {
createConfirm({
iconType: 'warning',
title: L('AreYouSure'),
content: L('SessionWillBeRevokedMessage'),
onOk: async () => {
await revokeSession(session.sessionId);
createMessage.success(L('SuccessfullyRevoked'));
fetchSessions();
},
});
}
</script>
<style lang="less" scoped>
.session {
.session__tile {
display: flex;
flex-direction: row;
}
}
</style>

13
apps/vue/src/views/identity/user/components/UserTable.vue

@ -57,6 +57,11 @@
ifShow: !lockEnd(record), ifShow: !lockEnd(record),
onClick: showLockModal.bind(null, record.id), onClick: showLockModal.bind(null, record.id),
}, },
{
auth: 'AbpIdentity.IdentitySessions',
label: L('IdentitySessions'),
onClick: handleShowSessionModal.bind(null, record),
},
{ {
auth: 'AbpIdentity.Users.Update', auth: 'AbpIdentity.Users.Update',
label: L('UnLock'), label: L('UnLock'),
@ -90,6 +95,7 @@
</template> </template>
</BasicTable> </BasicTable>
<UserModal @register="registerModal" @change="reloadTable" /> <UserModal @register="registerModal" @change="reloadTable" />
<SessionModal @register="registerSessionModal" />
<PermissionModal @register="registerPermissionModal" /> <PermissionModal @register="registerPermissionModal" />
<PasswordModal @register="registerPasswordModal" /> <PasswordModal @register="registerPasswordModal" />
<ClaimModal <ClaimModal
@ -129,11 +135,13 @@
updateClaim, updateClaim,
deleteClaim, deleteClaim,
} from '/@/api/identity/users'; } from '/@/api/identity/users';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import UserModal from './UserModal.vue'; import UserModal from './UserModal.vue';
import PasswordModal from './PasswordModal.vue'; import PasswordModal from './PasswordModal.vue';
import LockModal from './LockModal.vue'; import LockModal from './LockModal.vue';
import MenuModal from '../../components/MenuModal.vue'; import MenuModal from '../../components/MenuModal.vue';
import ClaimModal from '../../components/ClaimModal.vue'; import ClaimModal from '../../components/ClaimModal.vue';
const SessionModal = createAsyncComponent(() => import('./SessionModal.vue'));
const emits = defineEmits(['change']); const emits = defineEmits(['change']);
@ -146,6 +154,7 @@
const { registerLockModal, showLockModal, handleUnLock } = useLock({ emit: emits }); const { registerLockModal, showLockModal, handleUnLock } = useLock({ emit: emits });
const { registerPasswordModal, showPasswordModal } = usePassword(nullFormElRef); const { registerPasswordModal, showPasswordModal } = usePassword(nullFormElRef);
const [registerClaimModal, { openModal: openClaimModal }] = useModal(); const [registerClaimModal, { openModal: openClaimModal }] = useModal();
const [registerSessionModal, { openModal: openSessionModal }] = useModal();
const [registerMenuModal, { openModal: openMenuModal, closeModal: closeMenuModal }] = useModal(); const [registerMenuModal, { openModal: openMenuModal, closeModal: closeMenuModal }] = useModal();
const { registerModel: registerPermissionModal, showPermissionModal } = usePermissionModal(); const { registerModel: registerPermissionModal, showPermissionModal } = usePermissionModal();
@ -188,4 +197,8 @@
function handleShowClaims(record) { function handleShowClaims(record) {
openClaimModal(true, { id: record.id }); openClaimModal(true, { id: record.id });
} }
function handleShowSessionModal(record) {
openSessionModal(true, { userId: record.id });
}
</script> </script>

1
apps/vue/types/abp.d.ts

@ -110,6 +110,7 @@ declare interface CurrentUser {
phoneNumber?: string; phoneNumber?: string;
phoneNumberVerified: boolean; phoneNumberVerified: boolean;
roles: string[]; roles: string[];
sessionId?: string;
} }
type SimpleStateCheckerResult<TState extends IHasSimpleStateCheckers<TState>> = Recordable< type SimpleStateCheckerResult<TState extends IHasSimpleStateCheckers<TState>> = Recordable<

248
aspnet-core/LINGYUN.MicroService.All.sln

@ -742,73 +742,21 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenApi.OpenIdd
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.Scriban", "modules\text-templating\LINGYUN.Abp.TextTemplating.Scriban\LINGYUN.Abp.TextTemplating.Scriban.csproj", "{15482834-9242-4D20-9736-9DA571A9A83A}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.Scriban", "modules\text-templating\LINGYUN.Abp.TextTemplating.Scriban\LINGYUN.Abp.TextTemplating.Scriban.csproj", "{15482834-9242-4D20-9736-9DA571A9A83A}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{8A255A72-50FC-460E-9897-FA53F455580B}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{8A255A72-50FC-460E-9897-FA53F455580B}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WeChat.Work.Common", "framework\wechat\LINGYUN.Abp.WeChat.Work.Common\LINGYUN.Abp.WeChat.Work.Common.csproj", "{46038910-8EDD-4822-8768-097B7D276FED}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.Work.Common", "framework\wechat\LINGYUN.Abp.WeChat.Work.Common\LINGYUN.Abp.WeChat.Work.Common.csproj", "{CED33625-A034-475B-A4C0-A4E7D1BADD10}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.TaskManagement.Domain.Shared", "modules\task-management\LINGYUN.Abp.TaskManagement.Domain.Shared\LINGYUN.Abp.TaskManagement.Domain.Shared.csproj", "{332F2031-6B67-4199-8BA4-317679D2FFF8}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session", "modules\identity\LINGYUN.Abp.Identity.Session\LINGYUN.Abp.Identity.Session.csproj", "{E3BA2413-5755-4F61-9A7C-5D49AE9E7016}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.BackgroundTasks", "modules\task-management\LINGYUN.Abp.BackgroundTasks\LINGYUN.Abp.BackgroundTasks.csproj", "{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session.AspNetCore", "modules\identity\LINGYUN.Abp.Identity.Session.AspNetCore\LINGYUN.Abp.Identity.Session.AspNetCore.csproj", "{BF85DB7F-70C2-4804-AA57-FACE204981DA}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.BackgroundTasks.Quartz", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Quartz\LINGYUN.Abp.BackgroundTasks.Quartz.csproj", "{FF53669D-560C-4791-BE9A-28231C15FA4E}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.Session", "modules\identityServer\LINGYUN.Abp.IdentityServer.Session\LINGYUN.Abp.IdentityServer.Session.csproj", "{893F7376-0913-43DC-AD3D-40AF5B8F9E3B}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.BackgroundTasks.DistributedLocking", "modules\task-management\LINGYUN.Abp.BackgroundTasks.DistributedLocking\LINGYUN.Abp.BackgroundTasks.DistributedLocking.csproj", "{2F8BB49E-92E5-4468-8656-BD4BC03FA505}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.AspNetCore.Session", "modules\identity\LINGYUN.Abp.Identity.AspNetCore.Session\LINGYUN.Abp.Identity.AspNetCore.Session.csproj", "{8826831D-8733-473A-B47B-A30C3732B13D}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.BackgroundTasks.ExceptionHandling", "modules\task-management\LINGYUN.Abp.BackgroundTasks.ExceptionHandling\LINGYUN.Abp.BackgroundTasks.ExceptionHandling.csproj", "{5CAC42F1-58A4-4716-B8E5-E28042D1B612}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenIddict.AspNetCore.Session", "modules\openIddict\LINGYUN.Abp.OpenIddict.AspNetCore.Session\LINGYUN.Abp.OpenIddict.AspNetCore.Session.csproj", "{D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.TaskManagement.EntityFrameworkCore", "modules\task-management\LINGYUN.Abp.TaskManagement.EntityFrameworkCore\LINGYUN.Abp.TaskManagement.EntityFrameworkCore.csproj", "{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Notifications", "modules\identity\LINGYUN.Abp.Identity.Notifications\LINGYUN.Abp.Identity.Notifications.csproj", "{54BBA043-317B-4A4F-B583-513D08BC25A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.BackgroundTasks.Activities", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Activities\LINGYUN.Abp.BackgroundTasks.Activities.csproj", "{F78B0978-4ECF-4EA3-89A7-9492AE33CB30}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.TaskManagement.Domain", "modules\task-management\LINGYUN.Abp.TaskManagement.Domain\LINGYUN.Abp.TaskManagement.Domain.csproj", "{7C1A3331-D3D0-4CF0-A7D4-9E27F507AB02}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.TaskManagement.Application", "modules\task-management\LINGYUN.Abp.TaskManagement.Application\LINGYUN.Abp.TaskManagement.Application.csproj", "{DC4AB835-76CA-4439-9A14-473B3838F856}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.BackgroundTasks.EventBus", "modules\task-management\LINGYUN.Abp.BackgroundTasks.EventBus\LINGYUN.Abp.BackgroundTasks.EventBus.csproj", "{3310571F-1B30-49A4-AD24-0CF5C91C58F7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.TaskManagement.HttpApi", "modules\task-management\LINGYUN.Abp.TaskManagement.HttpApi\LINGYUN.Abp.TaskManagement.HttpApi.csproj", "{00C8A2BC-361D-4999-AEC3-BA4DD7991A9D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WebhooksManagement.Application.Contracts", "modules\webhooks\LINGYUN.Abp.WebhooksManagement.Application.Contracts\LINGYUN.Abp.WebhooksManagement.Application.Contracts.csproj", "{D60CF8FB-45BB-4F95-97EB-E1CE54B3105A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WebhooksManagement.Application", "modules\webhooks\LINGYUN.Abp.WebhooksManagement.Application\LINGYUN.Abp.WebhooksManagement.Application.csproj", "{7D83C686-7BF0-4037-B927-A502D55D01F8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WebhooksManagement.Domain", "modules\webhooks\LINGYUN.Abp.WebhooksManagement.Domain\LINGYUN.Abp.WebhooksManagement.Domain.csproj", "{C7F7F9E2-F877-4658-BFEC-E47AE27B0139}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WebhooksManagement.Domain.Shared", "modules\webhooks\LINGYUN.Abp.WebhooksManagement.Domain.Shared\LINGYUN.Abp.WebhooksManagement.Domain.Shared.csproj", "{2BC04B60-6959-47FF-8860-96AB51986584}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WebhooksManagement.EntityFrameworkCore", "modules\webhooks\LINGYUN.Abp.WebhooksManagement.EntityFrameworkCore\LINGYUN.Abp.WebhooksManagement.EntityFrameworkCore.csproj", "{1752BAA2-4305-4655-99B4-6832E2CE6CAF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WebhooksManagement.HttpApi", "modules\webhooks\LINGYUN.Abp.WebhooksManagement.HttpApi\LINGYUN.Abp.WebhooksManagement.HttpApi.csproj", "{6F2A09CE-183E-4FBA-BB12-DD6105B90B00}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.WebhooksManagement.HttpApi.Client", "modules\webhooks\LINGYUN.Abp.WebhooksManagement.HttpApi.Client\LINGYUN.Abp.WebhooksManagement.HttpApi.Client.csproj", "{5E3E2B57-4BF1-45A7-9BAE-EDA000F27C80}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LY.MicroService.TaskManagement.HttpApi.Host", "services\LY.MicroService.TaskManagement.HttpApi.Host\LY.MicroService.TaskManagement.HttpApi.Host.csproj", "{7D760508-A5A8-44D9-8958-F5AD5F1B7949}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "task", "task", "{C1EFDD32-5524-4DDD-9925-88B6E3530994}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LY.MicroService.WebhooksManagement.HttpApi.Host", "services\LY.MicroService.WebhooksManagement.HttpApi.Host\LY.MicroService.WebhooksManagement.HttpApi.Host.csproj", "{2D3B6C77-465E-4D39-A83D-47E74F14D6D0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "webhooks", "webhooks", "{0107020D-22E5-4DDF-8A62-5DE850BA6C79}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LY.MicroService.WorkflowManagement.HttpApi.Host", "services\LY.MicroService.WorkflowManagement.HttpApi.Host\LY.MicroService.WorkflowManagement.HttpApi.Host.csproj", "{E8139252-2F6D-437D-97C7-6FB77C705E58}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflow", "workflow", "{74319001-6F4B-41D9-BE32-128EC12AB10B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.BackgroundTasks.Notifications", "modules\task-management\LINGYUN.Abp.BackgroundTasks.Notifications\LINGYUN.Abp.BackgroundTasks.Notifications.csproj", "{40FEF2F7-BB0E-4192-89EE-BDA98B3E4007}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LY.MicroService.TaskManagement.EntityFrameworkCore", "migrations\LY.MicroService.TaskManagement.EntityFrameworkCore\LY.MicroService.TaskManagement.EntityFrameworkCore.csproj", "{CE309DF2-FB96-4917-9DC6-14DC1DED7EED}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "task", "task", "{A922E0EE-5302-4E2B-9D84-0EC681416DA2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Webhooks.Identity", "modules\webhooks\LINGYUN.Abp.Webhooks.Identity\LINGYUN.Abp.Webhooks.Identity.csproj", "{27505FC3-2659-40CC-A9C7-0857FBECE099}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Webhooks.Saas", "modules\webhooks\LINGYUN.Abp.Webhooks.Saas\LINGYUN.Abp.Webhooks.Saas.csproj", "{1E6F9CF8-577C-45A7-A2E0-2BB3C40AFB9D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Webhooks.EventBus", "modules\webhooks\LINGYUN.Abp.Webhooks.EventBus\LINGYUN.Abp.Webhooks.EventBus.csproj", "{65951546-93DB-4415-94C5-2B7B1E232A3E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LY.MicroService.WebhooksManagement.EntityFrameworkCore", "migrations\LY.MicroService.WebhooksManagement.EntityFrameworkCore\LY.MicroService.WebhooksManagement.EntityFrameworkCore.csproj", "{E41F9F32-7A18-485D-BAAE-D858F7EE72E7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "webhooks", "webhooks", "{E93F5D2E-14FF-47A0-B899-0E34AFDBCCBD}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -1964,118 +1912,34 @@ Global
{8A255A72-50FC-460E-9897-FA53F455580B}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A255A72-50FC-460E-9897-FA53F455580B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A255A72-50FC-460E-9897-FA53F455580B}.Release|Any CPU.ActiveCfg = Release|Any CPU {8A255A72-50FC-460E-9897-FA53F455580B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A255A72-50FC-460E-9897-FA53F455580B}.Release|Any CPU.Build.0 = Release|Any CPU {8A255A72-50FC-460E-9897-FA53F455580B}.Release|Any CPU.Build.0 = Release|Any CPU
{46038910-8EDD-4822-8768-097B7D276FED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CED33625-A034-475B-A4C0-A4E7D1BADD10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{46038910-8EDD-4822-8768-097B7D276FED}.Debug|Any CPU.Build.0 = Debug|Any CPU {CED33625-A034-475B-A4C0-A4E7D1BADD10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{46038910-8EDD-4822-8768-097B7D276FED}.Release|Any CPU.ActiveCfg = Release|Any CPU {CED33625-A034-475B-A4C0-A4E7D1BADD10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{46038910-8EDD-4822-8768-097B7D276FED}.Release|Any CPU.Build.0 = Release|Any CPU {CED33625-A034-475B-A4C0-A4E7D1BADD10}.Release|Any CPU.Build.0 = Release|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Debug|Any CPU.Build.0 = Debug|Any CPU {E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Debug|Any CPU.Build.0 = Debug|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Release|Any CPU.ActiveCfg = Release|Any CPU {E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Release|Any CPU.ActiveCfg = Release|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Release|Any CPU.Build.0 = Release|Any CPU {E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Release|Any CPU.Build.0 = Release|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BF85DB7F-70C2-4804-AA57-FACE204981DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Debug|Any CPU.Build.0 = Debug|Any CPU {BF85DB7F-70C2-4804-AA57-FACE204981DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Release|Any CPU.ActiveCfg = Release|Any CPU {BF85DB7F-70C2-4804-AA57-FACE204981DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Release|Any CPU.Build.0 = Release|Any CPU {BF85DB7F-70C2-4804-AA57-FACE204981DA}.Release|Any CPU.Build.0 = Release|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Debug|Any CPU.Build.0 = Debug|Any CPU {893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Release|Any CPU.ActiveCfg = Release|Any CPU {893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Release|Any CPU.Build.0 = Release|Any CPU {893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Release|Any CPU.Build.0 = Release|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8826831D-8733-473A-B47B-A30C3732B13D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Debug|Any CPU.Build.0 = Debug|Any CPU {8826831D-8733-473A-B47B-A30C3732B13D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Release|Any CPU.ActiveCfg = Release|Any CPU {8826831D-8733-473A-B47B-A30C3732B13D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Release|Any CPU.Build.0 = Release|Any CPU {8826831D-8733-473A-B47B-A30C3732B13D}.Release|Any CPU.Build.0 = Release|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Debug|Any CPU.Build.0 = Debug|Any CPU {D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Release|Any CPU.ActiveCfg = Release|Any CPU {D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Release|Any CPU.Build.0 = Release|Any CPU {D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Release|Any CPU.Build.0 = Release|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {54BBA043-317B-4A4F-B583-513D08BC25A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU {54BBA043-317B-4A4F-B583-513D08BC25A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {54BBA043-317B-4A4F-B583-513D08BC25A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.Release|Any CPU.Build.0 = Release|Any CPU {54BBA043-317B-4A4F-B583-513D08BC25A7}.Release|Any CPU.Build.0 = Release|Any CPU
{F78B0978-4ECF-4EA3-89A7-9492AE33CB30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F78B0978-4ECF-4EA3-89A7-9492AE33CB30}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F78B0978-4ECF-4EA3-89A7-9492AE33CB30}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F78B0978-4ECF-4EA3-89A7-9492AE33CB30}.Release|Any CPU.Build.0 = Release|Any CPU
{7C1A3331-D3D0-4CF0-A7D4-9E27F507AB02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C1A3331-D3D0-4CF0-A7D4-9E27F507AB02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C1A3331-D3D0-4CF0-A7D4-9E27F507AB02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C1A3331-D3D0-4CF0-A7D4-9E27F507AB02}.Release|Any CPU.Build.0 = Release|Any CPU
{DC4AB835-76CA-4439-9A14-473B3838F856}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC4AB835-76CA-4439-9A14-473B3838F856}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DC4AB835-76CA-4439-9A14-473B3838F856}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC4AB835-76CA-4439-9A14-473B3838F856}.Release|Any CPU.Build.0 = Release|Any CPU
{3310571F-1B30-49A4-AD24-0CF5C91C58F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3310571F-1B30-49A4-AD24-0CF5C91C58F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3310571F-1B30-49A4-AD24-0CF5C91C58F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3310571F-1B30-49A4-AD24-0CF5C91C58F7}.Release|Any CPU.Build.0 = Release|Any CPU
{00C8A2BC-361D-4999-AEC3-BA4DD7991A9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{00C8A2BC-361D-4999-AEC3-BA4DD7991A9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00C8A2BC-361D-4999-AEC3-BA4DD7991A9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{00C8A2BC-361D-4999-AEC3-BA4DD7991A9D}.Release|Any CPU.Build.0 = Release|Any CPU
{D60CF8FB-45BB-4F95-97EB-E1CE54B3105A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D60CF8FB-45BB-4F95-97EB-E1CE54B3105A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D60CF8FB-45BB-4F95-97EB-E1CE54B3105A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D60CF8FB-45BB-4F95-97EB-E1CE54B3105A}.Release|Any CPU.Build.0 = Release|Any CPU
{7D83C686-7BF0-4037-B927-A502D55D01F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D83C686-7BF0-4037-B927-A502D55D01F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D83C686-7BF0-4037-B927-A502D55D01F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D83C686-7BF0-4037-B927-A502D55D01F8}.Release|Any CPU.Build.0 = Release|Any CPU
{C7F7F9E2-F877-4658-BFEC-E47AE27B0139}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C7F7F9E2-F877-4658-BFEC-E47AE27B0139}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C7F7F9E2-F877-4658-BFEC-E47AE27B0139}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C7F7F9E2-F877-4658-BFEC-E47AE27B0139}.Release|Any CPU.Build.0 = Release|Any CPU
{2BC04B60-6959-47FF-8860-96AB51986584}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BC04B60-6959-47FF-8860-96AB51986584}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BC04B60-6959-47FF-8860-96AB51986584}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2BC04B60-6959-47FF-8860-96AB51986584}.Release|Any CPU.Build.0 = Release|Any CPU
{1752BAA2-4305-4655-99B4-6832E2CE6CAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1752BAA2-4305-4655-99B4-6832E2CE6CAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1752BAA2-4305-4655-99B4-6832E2CE6CAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1752BAA2-4305-4655-99B4-6832E2CE6CAF}.Release|Any CPU.Build.0 = Release|Any CPU
{6F2A09CE-183E-4FBA-BB12-DD6105B90B00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F2A09CE-183E-4FBA-BB12-DD6105B90B00}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F2A09CE-183E-4FBA-BB12-DD6105B90B00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F2A09CE-183E-4FBA-BB12-DD6105B90B00}.Release|Any CPU.Build.0 = Release|Any CPU
{5E3E2B57-4BF1-45A7-9BAE-EDA000F27C80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5E3E2B57-4BF1-45A7-9BAE-EDA000F27C80}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5E3E2B57-4BF1-45A7-9BAE-EDA000F27C80}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5E3E2B57-4BF1-45A7-9BAE-EDA000F27C80}.Release|Any CPU.Build.0 = Release|Any CPU
{7D760508-A5A8-44D9-8958-F5AD5F1B7949}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D760508-A5A8-44D9-8958-F5AD5F1B7949}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D760508-A5A8-44D9-8958-F5AD5F1B7949}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D760508-A5A8-44D9-8958-F5AD5F1B7949}.Release|Any CPU.Build.0 = Release|Any CPU
{2D3B6C77-465E-4D39-A83D-47E74F14D6D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2D3B6C77-465E-4D39-A83D-47E74F14D6D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2D3B6C77-465E-4D39-A83D-47E74F14D6D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2D3B6C77-465E-4D39-A83D-47E74F14D6D0}.Release|Any CPU.Build.0 = Release|Any CPU
{E8139252-2F6D-437D-97C7-6FB77C705E58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E8139252-2F6D-437D-97C7-6FB77C705E58}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E8139252-2F6D-437D-97C7-6FB77C705E58}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E8139252-2F6D-437D-97C7-6FB77C705E58}.Release|Any CPU.Build.0 = Release|Any CPU
{40FEF2F7-BB0E-4192-89EE-BDA98B3E4007}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{40FEF2F7-BB0E-4192-89EE-BDA98B3E4007}.Debug|Any CPU.Build.0 = Debug|Any CPU
{40FEF2F7-BB0E-4192-89EE-BDA98B3E4007}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40FEF2F7-BB0E-4192-89EE-BDA98B3E4007}.Release|Any CPU.Build.0 = Release|Any CPU
{CE309DF2-FB96-4917-9DC6-14DC1DED7EED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE309DF2-FB96-4917-9DC6-14DC1DED7EED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CE309DF2-FB96-4917-9DC6-14DC1DED7EED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE309DF2-FB96-4917-9DC6-14DC1DED7EED}.Release|Any CPU.Build.0 = Release|Any CPU
{27505FC3-2659-40CC-A9C7-0857FBECE099}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{27505FC3-2659-40CC-A9C7-0857FBECE099}.Debug|Any CPU.Build.0 = Debug|Any CPU
{27505FC3-2659-40CC-A9C7-0857FBECE099}.Release|Any CPU.ActiveCfg = Release|Any CPU
{27505FC3-2659-40CC-A9C7-0857FBECE099}.Release|Any CPU.Build.0 = Release|Any CPU
{1E6F9CF8-577C-45A7-A2E0-2BB3C40AFB9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E6F9CF8-577C-45A7-A2E0-2BB3C40AFB9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E6F9CF8-577C-45A7-A2E0-2BB3C40AFB9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E6F9CF8-577C-45A7-A2E0-2BB3C40AFB9D}.Release|Any CPU.Build.0 = Release|Any CPU
{65951546-93DB-4415-94C5-2B7B1E232A3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65951546-93DB-4415-94C5-2B7B1E232A3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65951546-93DB-4415-94C5-2B7B1E232A3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65951546-93DB-4415-94C5-2B7B1E232A3E}.Release|Any CPU.Build.0 = Release|Any CPU
{E41F9F32-7A18-485D-BAAE-D858F7EE72E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E41F9F32-7A18-485D-BAAE-D858F7EE72E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E41F9F32-7A18-485D-BAAE-D858F7EE72E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E41F9F32-7A18-485D-BAAE-D858F7EE72E7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -2435,39 +2299,13 @@ Global
{ED3DF100-C5DB-4334-A847-118922B28D95} = {3C7A8246-DE82-4330-8697-24EF1B1C515D} {ED3DF100-C5DB-4334-A847-118922B28D95} = {3C7A8246-DE82-4330-8697-24EF1B1C515D}
{15482834-9242-4D20-9736-9DA571A9A83A} = {ABD89F39-62D9-439E-8662-BE4F36BFA04F} {15482834-9242-4D20-9736-9DA571A9A83A} = {ABD89F39-62D9-439E-8662-BE4F36BFA04F}
{8A255A72-50FC-460E-9897-FA53F455580B} = {9D1302BE-3886-49F8-B0CD-35D2AC1E5A37} {8A255A72-50FC-460E-9897-FA53F455580B} = {9D1302BE-3886-49F8-B0CD-35D2AC1E5A37}
{46038910-8EDD-4822-8768-097B7D276FED} = {DD9BE9E7-F6BF-4869-BCD2-82F5072BDA21} {CED33625-A034-475B-A4C0-A4E7D1BADD10} = {DD9BE9E7-F6BF-4869-BCD2-82F5072BDA21}
{332F2031-6B67-4199-8BA4-317679D2FFF8} = {77ED7922-BF30-4436-8A85-78F812583913} {E3BA2413-5755-4F61-9A7C-5D49AE9E7016} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306} = {77ED7922-BF30-4436-8A85-78F812583913} {BF85DB7F-70C2-4804-AA57-FACE204981DA} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
{FF53669D-560C-4791-BE9A-28231C15FA4E} = {77ED7922-BF30-4436-8A85-78F812583913} {893F7376-0913-43DC-AD3D-40AF5B8F9E3B} = {0439B173-F41E-4CE0-A44A-CCB70328F272}
{2F8BB49E-92E5-4468-8656-BD4BC03FA505} = {77ED7922-BF30-4436-8A85-78F812583913} {8826831D-8733-473A-B47B-A30C3732B13D} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
{5CAC42F1-58A4-4716-B8E5-E28042D1B612} = {77ED7922-BF30-4436-8A85-78F812583913} {D1484DD3-BB0A-45A4-BED5-FFA132DE2E72} = {83E698F6-F8CD-4604-AB80-01A203389501}
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A} = {77ED7922-BF30-4436-8A85-78F812583913} {54BBA043-317B-4A4F-B583-513D08BC25A7} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
{F78B0978-4ECF-4EA3-89A7-9492AE33CB30} = {77ED7922-BF30-4436-8A85-78F812583913}
{7C1A3331-D3D0-4CF0-A7D4-9E27F507AB02} = {77ED7922-BF30-4436-8A85-78F812583913}
{DC4AB835-76CA-4439-9A14-473B3838F856} = {77ED7922-BF30-4436-8A85-78F812583913}
{3310571F-1B30-49A4-AD24-0CF5C91C58F7} = {77ED7922-BF30-4436-8A85-78F812583913}
{00C8A2BC-361D-4999-AEC3-BA4DD7991A9D} = {77ED7922-BF30-4436-8A85-78F812583913}
{D60CF8FB-45BB-4F95-97EB-E1CE54B3105A} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{7D83C686-7BF0-4037-B927-A502D55D01F8} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{C7F7F9E2-F877-4658-BFEC-E47AE27B0139} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{2BC04B60-6959-47FF-8860-96AB51986584} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{1752BAA2-4305-4655-99B4-6832E2CE6CAF} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{6F2A09CE-183E-4FBA-BB12-DD6105B90B00} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{5E3E2B57-4BF1-45A7-9BAE-EDA000F27C80} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{C1EFDD32-5524-4DDD-9925-88B6E3530994} = {672E1170-7B18-474B-85C7-1961BF2A48AE}
{7D760508-A5A8-44D9-8958-F5AD5F1B7949} = {C1EFDD32-5524-4DDD-9925-88B6E3530994}
{0107020D-22E5-4DDF-8A62-5DE850BA6C79} = {672E1170-7B18-474B-85C7-1961BF2A48AE}
{74319001-6F4B-41D9-BE32-128EC12AB10B} = {672E1170-7B18-474B-85C7-1961BF2A48AE}
{2D3B6C77-465E-4D39-A83D-47E74F14D6D0} = {0107020D-22E5-4DDF-8A62-5DE850BA6C79}
{E8139252-2F6D-437D-97C7-6FB77C705E58} = {74319001-6F4B-41D9-BE32-128EC12AB10B}
{40FEF2F7-BB0E-4192-89EE-BDA98B3E4007} = {77ED7922-BF30-4436-8A85-78F812583913}
{A922E0EE-5302-4E2B-9D84-0EC681416DA2} = {C90A505F-000E-4AE4-8CCD-AB5FE5092B5C}
{CE309DF2-FB96-4917-9DC6-14DC1DED7EED} = {A922E0EE-5302-4E2B-9D84-0EC681416DA2}
{27505FC3-2659-40CC-A9C7-0857FBECE099} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{1E6F9CF8-577C-45A7-A2E0-2BB3C40AFB9D} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{65951546-93DB-4415-94C5-2B7B1E232A3E} = {13ACF670-F109-404E-B252-2FA34A4EA061}
{E93F5D2E-14FF-47A0-B899-0E34AFDBCCBD} = {C90A505F-000E-4AE4-8CCD-AB5FE5092B5C}
{E41F9F32-7A18-485D-BAAE-D858F7EE72E7} = {E93F5D2E-14FF-47A0-B899-0E34AFDBCCBD}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C95FDF91-16F2-4A8B-A4BE-0E62D1B66718} SolutionGuid = {C95FDF91-16F2-4A8B-A4BE-0E62D1B66718}

63
aspnet-core/LINGYUN.MicroService.SingleProject.sln

@ -515,6 +515,24 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundTasks
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.Jobs", "modules\saas\LINGYUN.Abp.Saas.Jobs\LINGYUN.Abp.Saas.Jobs.csproj", "{8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Saas.Jobs", "modules\saas\LINGYUN.Abp.Saas.Jobs\LINGYUN.Abp.Saas.Jobs.csproj", "{8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.SmsValidator", "modules\identityServer\LINGYUN.Abp.IdentityServer.SmsValidator\LINGYUN.Abp.IdentityServer.SmsValidator.csproj", "{7C1A8FF7-9FD1-41FC-856D-7A2DC6F7CE6F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.Portal", "modules\identityServer\LINGYUN.Abp.IdentityServer.Portal\LINGYUN.Abp.IdentityServer.Portal.csproj", "{986B92F6-A758-4D1F-8BC7-BFD13FF38591}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.WeChat.Work", "modules\identityServer\LINGYUN.Abp.IdentityServer.WeChat.Work\LINGYUN.Abp.IdentityServer.WeChat.Work.csproj", "{62D72C3E-5C57-439D-B7F7-5C55CC384A7A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session", "modules\identity\LINGYUN.Abp.Identity.Session\LINGYUN.Abp.Identity.Session.csproj", "{74156CFF-C236-4DED-B810-FAD8948F51CA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session.AspNetCore", "modules\identity\LINGYUN.Abp.Identity.Session.AspNetCore\LINGYUN.Abp.Identity.Session.AspNetCore.csproj", "{63D08153-B43C-4884-8818-4AB42E1FEE75}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.AspNetCore.Session", "modules\identity\LINGYUN.Abp.Identity.AspNetCore.Session\LINGYUN.Abp.Identity.AspNetCore.Session.csproj", "{AF02868C-283E-4CB2-8866-3B0CAD1BB2DE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.Session", "modules\identityServer\LINGYUN.Abp.IdentityServer.Session\LINGYUN.Abp.IdentityServer.Session.csproj", "{F7459720-873C-4741-A991-A671CF03A6AF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenIddict.AspNetCore.Session", "modules\openIddict\LINGYUN.Abp.OpenIddict.AspNetCore.Session\LINGYUN.Abp.OpenIddict.AspNetCore.Session.csproj", "{382CAC43-EE1F-4DA3-B433-E23C3F58F44A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Notifications", "modules\identity\LINGYUN.Abp.Identity.Notifications\LINGYUN.Abp.Identity.Notifications.csproj", "{4634B421-36E6-4169-AA1A-11050902495F}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -1349,6 +1367,42 @@ Global
{8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}.Debug|Any CPU.Build.0 = Debug|Any CPU {8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}.Release|Any CPU.ActiveCfg = Release|Any CPU {8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}.Release|Any CPU.Build.0 = Release|Any CPU {8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3}.Release|Any CPU.Build.0 = Release|Any CPU
{7C1A8FF7-9FD1-41FC-856D-7A2DC6F7CE6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C1A8FF7-9FD1-41FC-856D-7A2DC6F7CE6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C1A8FF7-9FD1-41FC-856D-7A2DC6F7CE6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C1A8FF7-9FD1-41FC-856D-7A2DC6F7CE6F}.Release|Any CPU.Build.0 = Release|Any CPU
{986B92F6-A758-4D1F-8BC7-BFD13FF38591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{986B92F6-A758-4D1F-8BC7-BFD13FF38591}.Debug|Any CPU.Build.0 = Debug|Any CPU
{986B92F6-A758-4D1F-8BC7-BFD13FF38591}.Release|Any CPU.ActiveCfg = Release|Any CPU
{986B92F6-A758-4D1F-8BC7-BFD13FF38591}.Release|Any CPU.Build.0 = Release|Any CPU
{62D72C3E-5C57-439D-B7F7-5C55CC384A7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{62D72C3E-5C57-439D-B7F7-5C55CC384A7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{62D72C3E-5C57-439D-B7F7-5C55CC384A7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{62D72C3E-5C57-439D-B7F7-5C55CC384A7A}.Release|Any CPU.Build.0 = Release|Any CPU
{74156CFF-C236-4DED-B810-FAD8948F51CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74156CFF-C236-4DED-B810-FAD8948F51CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74156CFF-C236-4DED-B810-FAD8948F51CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74156CFF-C236-4DED-B810-FAD8948F51CA}.Release|Any CPU.Build.0 = Release|Any CPU
{63D08153-B43C-4884-8818-4AB42E1FEE75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63D08153-B43C-4884-8818-4AB42E1FEE75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63D08153-B43C-4884-8818-4AB42E1FEE75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63D08153-B43C-4884-8818-4AB42E1FEE75}.Release|Any CPU.Build.0 = Release|Any CPU
{AF02868C-283E-4CB2-8866-3B0CAD1BB2DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AF02868C-283E-4CB2-8866-3B0CAD1BB2DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AF02868C-283E-4CB2-8866-3B0CAD1BB2DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF02868C-283E-4CB2-8866-3B0CAD1BB2DE}.Release|Any CPU.Build.0 = Release|Any CPU
{F7459720-873C-4741-A991-A671CF03A6AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F7459720-873C-4741-A991-A671CF03A6AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7459720-873C-4741-A991-A671CF03A6AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7459720-873C-4741-A991-A671CF03A6AF}.Release|Any CPU.Build.0 = Release|Any CPU
{382CAC43-EE1F-4DA3-B433-E23C3F58F44A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{382CAC43-EE1F-4DA3-B433-E23C3F58F44A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{382CAC43-EE1F-4DA3-B433-E23C3F58F44A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{382CAC43-EE1F-4DA3-B433-E23C3F58F44A}.Release|Any CPU.Build.0 = Release|Any CPU
{4634B421-36E6-4169-AA1A-11050902495F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4634B421-36E6-4169-AA1A-11050902495F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4634B421-36E6-4169-AA1A-11050902495F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4634B421-36E6-4169-AA1A-11050902495F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -1600,6 +1654,15 @@ Global
{66A6E78D-E547-4DD7-9844-087FAB3D03C2} = {C22741F9-FC56-4AE3-B543-9F15C779D345} {66A6E78D-E547-4DD7-9844-087FAB3D03C2} = {C22741F9-FC56-4AE3-B543-9F15C779D345}
{A99F5406-37DC-4677-9166-9BDE90C26CA6} = {D9C65C9D-8591-46DA-A3EE-419393E607AB} {A99F5406-37DC-4677-9166-9BDE90C26CA6} = {D9C65C9D-8591-46DA-A3EE-419393E607AB}
{8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3} = {0DF5AD76-AEEA-4052-A6CA-A44C24879F11} {8FA3ED81-19AB-4E0C-B36A-DF49131A2AB3} = {0DF5AD76-AEEA-4052-A6CA-A44C24879F11}
{7C1A8FF7-9FD1-41FC-856D-7A2DC6F7CE6F} = {A3B6DFC3-5D27-496E-9AD6-C1035213F1DC}
{986B92F6-A758-4D1F-8BC7-BFD13FF38591} = {A3B6DFC3-5D27-496E-9AD6-C1035213F1DC}
{62D72C3E-5C57-439D-B7F7-5C55CC384A7A} = {A3B6DFC3-5D27-496E-9AD6-C1035213F1DC}
{74156CFF-C236-4DED-B810-FAD8948F51CA} = {D94D6AFE-20BD-4F21-8708-03F5E34F49FC}
{63D08153-B43C-4884-8818-4AB42E1FEE75} = {D94D6AFE-20BD-4F21-8708-03F5E34F49FC}
{AF02868C-283E-4CB2-8866-3B0CAD1BB2DE} = {D94D6AFE-20BD-4F21-8708-03F5E34F49FC}
{F7459720-873C-4741-A991-A671CF03A6AF} = {A3B6DFC3-5D27-496E-9AD6-C1035213F1DC}
{382CAC43-EE1F-4DA3-B433-E23C3F58F44A} = {7C714185-D3D9-4D94-B5CB-D857A0091F04}
{4634B421-36E6-4169-AA1A-11050902495F} = {D94D6AFE-20BD-4F21-8708-03F5E34F49FC}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {711A43C0-A2F8-4E5C-9B9F-F2551E4B3FF1} SolutionGuid = {711A43C0-A2F8-4E5C-9B9F-F2551E4B3FF1}

17
aspnet-core/LINGYUN.MicroService.WebhooksManagement.sln

@ -147,6 +147,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Security", "fra
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{047F892F-F8D2-4952-A1E9-93AA2B030F76}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{047F892F-F8D2-4952-A1E9-93AA2B030F76}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{23E99204-F7C1-47BA-84CD-3C9D05210F4F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session", "modules\identity\LINGYUN.Abp.Identity.Session\LINGYUN.Abp.Identity.Session.csproj", "{BF298DF5-BC1D-4DDD-A51E-8E9020D2C5F1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session.AspNetCore", "modules\identity\LINGYUN.Abp.Identity.Session.AspNetCore\LINGYUN.Abp.Identity.Session.AspNetCore.csproj", "{BE58649C-EA57-4DFC-8D25-54FDCB1943A1}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -381,6 +387,14 @@ Global
{047F892F-F8D2-4952-A1E9-93AA2B030F76}.Debug|Any CPU.Build.0 = Debug|Any CPU {047F892F-F8D2-4952-A1E9-93AA2B030F76}.Debug|Any CPU.Build.0 = Debug|Any CPU
{047F892F-F8D2-4952-A1E9-93AA2B030F76}.Release|Any CPU.ActiveCfg = Release|Any CPU {047F892F-F8D2-4952-A1E9-93AA2B030F76}.Release|Any CPU.ActiveCfg = Release|Any CPU
{047F892F-F8D2-4952-A1E9-93AA2B030F76}.Release|Any CPU.Build.0 = Release|Any CPU {047F892F-F8D2-4952-A1E9-93AA2B030F76}.Release|Any CPU.Build.0 = Release|Any CPU
{BF298DF5-BC1D-4DDD-A51E-8E9020D2C5F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF298DF5-BC1D-4DDD-A51E-8E9020D2C5F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF298DF5-BC1D-4DDD-A51E-8E9020D2C5F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF298DF5-BC1D-4DDD-A51E-8E9020D2C5F1}.Release|Any CPU.Build.0 = Release|Any CPU
{BE58649C-EA57-4DFC-8D25-54FDCB1943A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BE58649C-EA57-4DFC-8D25-54FDCB1943A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BE58649C-EA57-4DFC-8D25-54FDCB1943A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BE58649C-EA57-4DFC-8D25-54FDCB1943A1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -454,6 +468,9 @@ Global
{0DFDAC71-BCB9-44CF-A44A-E8288E75246F} = {FB7A9794-06D2-42CF-939E-4626497B97BD} {0DFDAC71-BCB9-44CF-A44A-E8288E75246F} = {FB7A9794-06D2-42CF-939E-4626497B97BD}
{8F11DADB-557A-4ECF-BEBB-19AFA71998A1} = {FB7A9794-06D2-42CF-939E-4626497B97BD} {8F11DADB-557A-4ECF-BEBB-19AFA71998A1} = {FB7A9794-06D2-42CF-939E-4626497B97BD}
{047F892F-F8D2-4952-A1E9-93AA2B030F76} = {FB7A9794-06D2-42CF-939E-4626497B97BD} {047F892F-F8D2-4952-A1E9-93AA2B030F76} = {FB7A9794-06D2-42CF-939E-4626497B97BD}
{23E99204-F7C1-47BA-84CD-3C9D05210F4F} = {03B4B0AA-83CE-4E4B-9CE2-47369BF88B97}
{BF298DF5-BC1D-4DDD-A51E-8E9020D2C5F1} = {23E99204-F7C1-47BA-84CD-3C9D05210F4F}
{BE58649C-EA57-4DFC-8D25-54FDCB1943A1} = {23E99204-F7C1-47BA-84CD-3C9D05210F4F}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {80ED12A5-C899-459F-A181-ADCC9D680DE5} SolutionGuid = {80ED12A5-C899-459F-A181-ADCC9D680DE5}

16
aspnet-core/LINGYUN.MicroService.Workflow.sln

@ -165,6 +165,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Security", "fra
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{1859E205-88DC-4E08-A0BD-55A045DCC495}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Claims.Mapping", "framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj", "{1859E205-88DC-4E08-A0BD-55A045DCC495}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{9C73D4E6-4408-4717-B51C-63C20321D4DA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session", "modules\identity\LINGYUN.Abp.Identity.Session\LINGYUN.Abp.Identity.Session.csproj", "{6ECF678D-6F3A-4084-8538-A86C1D67C703}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session.AspNetCore", "modules\identity\LINGYUN.Abp.Identity.Session.AspNetCore\LINGYUN.Abp.Identity.Session.AspNetCore.csproj", "{9FB5E943-7F6F-4281-9C00-E76284B4F1F3}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -443,6 +449,14 @@ Global
{1859E205-88DC-4E08-A0BD-55A045DCC495}.Debug|Any CPU.Build.0 = Debug|Any CPU {1859E205-88DC-4E08-A0BD-55A045DCC495}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.ActiveCfg = Release|Any CPU {1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.Build.0 = Release|Any CPU {1859E205-88DC-4E08-A0BD-55A045DCC495}.Release|Any CPU.Build.0 = Release|Any CPU
{6ECF678D-6F3A-4084-8538-A86C1D67C703}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6ECF678D-6F3A-4084-8538-A86C1D67C703}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6ECF678D-6F3A-4084-8538-A86C1D67C703}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6ECF678D-6F3A-4084-8538-A86C1D67C703}.Release|Any CPU.Build.0 = Release|Any CPU
{9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9FB5E943-7F6F-4281-9C00-E76284B4F1F3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -518,6 +532,8 @@ Global
{4D055853-DE80-4145-BB2F-33EB6B379F5E} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A} {4D055853-DE80-4145-BB2F-33EB6B379F5E} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
{E4783690-052A-4AB0-837E-BDBC77CC7EEC} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A} {E4783690-052A-4AB0-837E-BDBC77CC7EEC} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
{1859E205-88DC-4E08-A0BD-55A045DCC495} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A} {1859E205-88DC-4E08-A0BD-55A045DCC495} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
{6ECF678D-6F3A-4084-8538-A86C1D67C703} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
{9FB5E943-7F6F-4281-9C00-E76284B4F1F3} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F} SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F}

7
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN.Abp.AuditLogging.Elasticsearch.csproj

@ -4,7 +4,12 @@
<Import Project="..\..\..\..\common.props" /> <Import Project="..\..\..\..\common.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<AssemblyName>LINGYUN.Abp.AuditLogging.Elasticsearch</AssemblyName>
<PackageId>LINGYUN.Abp.AuditLogging.Elasticsearch</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/AbpAuditLoggingElasticsearchModule.cs

@ -3,8 +3,8 @@ using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Json; using Volo.Abp.Json;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
[DependsOn( [DependsOn(
typeof(AbpAuditLoggingModule), typeof(AbpAuditLoggingModule),
typeof(AbpElasticsearchModule), typeof(AbpElasticsearchModule),
@ -19,4 +19,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
context.Services.AddHostedService<IndexInitializerService>(); context.Services.AddHostedService<IndexInitializerService>();
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/AbpAuditLoggingElasticsearchOptions.cs

@ -1,7 +1,7 @@
using Nest; using Nest;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
public class AbpAuditLoggingElasticsearchOptions public class AbpAuditLoggingElasticsearchOptions
{ {
public const string DefaultIndexPrefix = "auditlogging"; public const string DefaultIndexPrefix = "auditlogging";
@ -14,4 +14,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
IndexSettings = new IndexSettings(); IndexSettings = new IndexSettings();
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/AuditLogInfoToAuditLogConverter.cs

@ -11,8 +11,8 @@ using Volo.Abp.Guids;
using Volo.Abp.Http; using Volo.Abp.Http;
using Volo.Abp.Json; using Volo.Abp.Json;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public class AuditLogInfoToAuditLogConverter : IAuditLogInfoToAuditLogConverter, ITransientDependency public class AuditLogInfoToAuditLogConverter : IAuditLogInfoToAuditLogConverter, ITransientDependency
{ {
protected IGuidGenerator GuidGenerator { get; } protected IGuidGenerator GuidGenerator { get; }
@ -112,4 +112,3 @@ namespace LINGYUN.Abp.AuditLogging
return Task.FromResult(auditLog); return Task.FromResult(auditLog);
} }
} }
}

13
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/ElasticsearchAuditLogManager.cs

@ -13,8 +13,8 @@ using Volo.Abp.Auditing;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Timing; using Volo.Abp.Timing;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
[Dependency(ReplaceServices = true)] [Dependency(ReplaceServices = true)]
public class ElasticsearchAuditLogManager : IAuditLogManager, ITransientDependency public class ElasticsearchAuditLogManager : IAuditLogManager, ITransientDependency
{ {
@ -61,7 +61,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
int? minExecutionDuration = null, int? minExecutionDuration = null,
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
var client = _clientFactory.Create(); var client = _clientFactory.Create();
@ -108,7 +108,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
var client = _clientFactory.Create(); var client = _clientFactory.Create();
@ -190,7 +190,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
public async virtual Task<string> SaveAsync( public async virtual Task<string> SaveAsync(
AuditLogInfo auditInfo, AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
if (!_auditingOptions.HideErrors) if (!_auditingOptions.HideErrors)
{ {
@ -211,7 +211,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
protected async virtual Task<string> SaveLogAsync( protected async virtual Task<string> SaveLogAsync(
AuditLogInfo auditLogInfo, AuditLogInfo auditLogInfo,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
var client = _clientFactory.Create(); var client = _clientFactory.Create();
@ -370,4 +370,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
return _elasticsearchOptions.FieldCamelCase ? field.ToCamelCase() : field.ToPascalCase(); return _elasticsearchOptions.FieldCamelCase ? field.ToCamelCase() : field.ToPascalCase();
} }
} }
}

11
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/ElasticsearchSecurityLogManager.cs

@ -13,8 +13,8 @@ using Volo.Abp.Guids;
using Volo.Abp.SecurityLog; using Volo.Abp.SecurityLog;
using Volo.Abp.Timing; using Volo.Abp.Timing;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
[Dependency(ReplaceServices = true)] [Dependency(ReplaceServices = true)]
public class ElasticsearchSecurityLogManager : ISecurityLogManager, ITransientDependency public class ElasticsearchSecurityLogManager : ISecurityLogManager, ITransientDependency
{ {
@ -47,7 +47,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
public async virtual Task SaveAsync( public async virtual Task SaveAsync(
SecurityLogInfo securityLogInfo, SecurityLogInfo securityLogInfo,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
// TODO: 框架不把这玩意儿放在 ISecurityLogManager? // TODO: 框架不把这玩意儿放在 ISecurityLogManager?
if (!_securityLogOptions.IsEnabled) if (!_securityLogOptions.IsEnabled)
@ -110,7 +110,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
string clientIpAddress = null, string clientIpAddress = null,
string correlationId = null, string correlationId = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
var client = _clientFactory.Create(); var client = _clientFactory.Create();
@ -156,7 +156,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
string clientId = null, string clientId = null,
string clientIpAddress = null, string clientIpAddress = null,
string correlationId = null, string correlationId = null,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
var client = _clientFactory.Create(); var client = _clientFactory.Create();
@ -269,4 +269,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
return _elasticsearchOptions.FieldCamelCase ? field.ToCamelCase() : field.ToPascalCase(); return _elasticsearchOptions.FieldCamelCase ? field.ToCamelCase() : field.ToPascalCase();
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IAuditLogInfoToAuditLogConverter.cs

@ -1,10 +1,9 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public interface IAuditLogInfoToAuditLogConverter public interface IAuditLogInfoToAuditLogConverter
{ {
Task<AuditLog> ConvertAsync(AuditLogInfo auditLogInfo); Task<AuditLog> ConvertAsync(AuditLogInfo auditLogInfo);
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IIndexInitializer.cs

@ -1,9 +1,8 @@
using System.Threading.Tasks; using System.Threading.Tasks;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
public interface IIndexInitializer public interface IIndexInitializer
{ {
Task InitializeAsync(); Task InitializeAsync();
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IIndexNameNormalizer.cs

@ -1,7 +1,6 @@
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
public interface IIndexNameNormalizer public interface IIndexNameNormalizer
{ {
string NormalizeIndex(string index); string NormalizeIndex(string index);
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IndexInitializer.cs

@ -9,8 +9,8 @@ using Volo.Abp.Data;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Json; using Volo.Abp.Json;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
public class IndexInitializer : IIndexInitializer, ISingletonDependency public class IndexInitializer : IIndexInitializer, ISingletonDependency
{ {
private readonly AbpJsonOptions _jsonOptions; private readonly AbpJsonOptions _jsonOptions;
@ -104,4 +104,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
} }
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IndexInitializerService.cs

@ -2,8 +2,8 @@
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
public class IndexInitializerService : BackgroundService public class IndexInitializerService : BackgroundService
{ {
private readonly IIndexInitializer _indexInitializer; private readonly IIndexInitializer _indexInitializer;
@ -18,4 +18,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
await _indexInitializer.InitializeAsync(); await _indexInitializer.InitializeAsync();
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.Elasticsearch/LINGYUN/Abp/AuditLogging/Elasticsearch/IndexNameNormalizer.cs

@ -3,8 +3,8 @@ using System;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
{
public class IndexNameNormalizer : IIndexNameNormalizer, ISingletonDependency public class IndexNameNormalizer : IIndexNameNormalizer, ISingletonDependency
{ {
private readonly ICurrentTenant _currentTenant; private readonly ICurrentTenant _currentTenant;
@ -29,4 +29,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
: $"{_options.IndexPrefix}-{index}"; : $"{_options.IndexPrefix}-{index}";
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN.Abp.AuditLogging.EntityFrameworkCore.csproj

@ -5,6 +5,11 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<AssemblyName>LINGYUN.Abp.AuditLogging.EntityFrameworkCore</AssemblyName>
<PackageId>LINGYUN.Abp.AuditLogging.EntityFrameworkCore</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingEntityFrameworkCoreModule.cs

@ -2,8 +2,8 @@
using Volo.Abp.AutoMapper; using Volo.Abp.AutoMapper;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
{
[DependsOn( [DependsOn(
typeof(Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule), typeof(Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule),
typeof(Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule))] typeof(Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule))]
@ -22,4 +22,3 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
}); });
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/AbpAuditingMapperProfile.cs

@ -1,7 +1,7 @@
using AutoMapper; using AutoMapper;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
{
public class AbpAuditingMapperProfile : Profile public class AbpAuditingMapperProfile : Profile
{ {
public AbpAuditingMapperProfile() public AbpAuditingMapperProfile()
@ -18,4 +18,3 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
.MapExtraProperties(); .MapExtraProperties();
} }
} }
}

15
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/AuditLogManager.cs

@ -12,8 +12,8 @@ using Volo.Abp.DependencyInjection;
using Volo.Abp.ObjectMapping; using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow; using Volo.Abp.Uow;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
{
[Dependency(ReplaceServices = true)] [Dependency(ReplaceServices = true)]
public class AuditLogManager : IAuditLogManager, ITransientDependency public class AuditLogManager : IAuditLogManager, ITransientDependency
{ {
@ -57,13 +57,14 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
int? minExecutionDuration = null, int? minExecutionDuration = null,
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
return await AuditLogRepository.GetCountAsync( return await AuditLogRepository.GetCountAsync(
startTime, startTime,
endTime, endTime,
httpMethod, httpMethod,
url, url,
clientId,
userId, userId,
userName, userName,
applicationName, applicationName,
@ -95,7 +96,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
var auditLogs = await AuditLogRepository.GetListAsync( var auditLogs = await AuditLogRepository.GetListAsync(
sorting, sorting,
@ -105,6 +106,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
endTime, endTime,
httpMethod, httpMethod,
url, url,
clientId,
userId, userId,
userName, userName,
applicationName, applicationName,
@ -141,7 +143,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
public async virtual Task<string> SaveAsync( public async virtual Task<string> SaveAsync(
AuditLogInfo auditInfo, AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
if (!Options.HideErrors) if (!Options.HideErrors)
{ {
@ -162,7 +164,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
protected async virtual Task<string> SaveLogAsync( protected async virtual Task<string> SaveLogAsync(
AuditLogInfo auditInfo, AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
using (var uow = UnitOfWorkManager.Begin(true)) using (var uow = UnitOfWorkManager.Begin(true))
{ {
@ -176,4 +178,3 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
} }
} }
} }
}

11
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging.EntityFrameworkCore/LINGYUN/Abp/AuditLogging/EntityFrameworkCore/SecurityLogManager.cs

@ -11,8 +11,8 @@ using Volo.Abp.ObjectMapping;
using Volo.Abp.SecurityLog; using Volo.Abp.SecurityLog;
using Volo.Abp.Uow; using Volo.Abp.Uow;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
{
[Dependency(ReplaceServices = true)] [Dependency(ReplaceServices = true)]
public class SecurityLogManager : ISecurityLogManager, ITransientDependency public class SecurityLogManager : ISecurityLogManager, ITransientDependency
{ {
@ -42,7 +42,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
public async virtual Task SaveAsync( public async virtual Task SaveAsync(
SecurityLogInfo securityLogInfo, SecurityLogInfo securityLogInfo,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
if (!SecurityLogOptions.IsEnabled) if (!SecurityLogOptions.IsEnabled)
{ {
@ -93,7 +93,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
string clientIpAddress = null, string clientIpAddress = null,
string correlationId = null, string correlationId = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
var securityLogs = await IdentitySecurityLogRepository.GetListAsync( var securityLogs = await IdentitySecurityLogRepository.GetListAsync(
sorting, sorting,
@ -126,7 +126,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
string clientId = null, string clientId = null,
string clientIpAddress = null, string clientIpAddress = null,
string correlationId = null, string correlationId = null,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
return await IdentitySecurityLogRepository.GetCountAsync( return await IdentitySecurityLogRepository.GetCountAsync(
startTime, startTime,
@ -141,4 +141,3 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
cancellationToken); cancellationToken);
} }
} }
}

9
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN.Abp.AuditLogging.csproj

@ -4,7 +4,14 @@
<Import Project="..\..\..\..\common.props" /> <Import Project="..\..\..\..\common.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>LINGYUN.Abp.AuditLogging</AssemblyName>
<PackageId>LINGYUN.Abp.AuditLogging</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AbpAuditLoggingModule.cs

@ -5,8 +5,8 @@ using Volo.Abp.ExceptionHandling;
using Volo.Abp.Guids; using Volo.Abp.Guids;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[DependsOn( [DependsOn(
typeof(AbpAuditingModule), typeof(AbpAuditingModule),
typeof(AbpGuidsModule), typeof(AbpGuidsModule),
@ -22,4 +22,3 @@ namespace LINGYUN.Abp.AuditLogging
}); });
} }
} }
}

62
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AuditLog.cs

@ -1,53 +1,52 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Volo.Abp.Auditing;
using Volo.Abp.Data; using Volo.Abp.Data;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public class AuditLog : IHasExtraProperties public class AuditLog : IHasExtraProperties
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public string ApplicationName { get; set; } public string? ApplicationName { get; set; }
public Guid? UserId { get; set; } public Guid? UserId { get; set; }
public string UserName { get; set; } public string? UserName { get; set; }
public Guid? TenantId { get; set; } public Guid? TenantId { get; set; }
public string TenantName { get; set; } public string? TenantName { get; set; }
public Guid? ImpersonatorUserId { get; set; } public Guid? ImpersonatorUserId { get; set; }
public string ImpersonatorUserName { get; set; } public string? ImpersonatorUserName { get; set; }
public Guid? ImpersonatorTenantId { get; set; } public Guid? ImpersonatorTenantId { get; set; }
public string ImpersonatorTenantName { get; set; } public string? ImpersonatorTenantName { get; set; }
public DateTime ExecutionTime { get; set; } public DateTime ExecutionTime { get; set; }
public int ExecutionDuration { get; set; } public int ExecutionDuration { get; set; }
public string ClientIpAddress { get; set; } public string? ClientIpAddress { get; set; }
public string ClientName { get; set; } public string? ClientName { get; set; }
public string ClientId { get; set; } public string? ClientId { get; set; }
public string CorrelationId { get; set; } public string? CorrelationId { get; set; }
public string BrowserInfo { get; set; } public string? BrowserInfo { get; set; }
public string HttpMethod { get; set; } public string? HttpMethod { get; set; }
public string Url { get; set; } public string? Url { get; set; }
public string Exceptions { get; set; } public string? Exceptions { get; set; }
public string Comments { get; set; } public string? Comments { get; set; }
public int? HttpStatusCode { get; set; } public int? HttpStatusCode { get; set; }
@ -66,30 +65,30 @@ namespace LINGYUN.Abp.AuditLogging
public AuditLog( public AuditLog(
Guid id, Guid id,
string applicationName, string? applicationName,
Guid? tenantId, Guid? tenantId,
string tenantName, string? tenantName,
Guid? userId, Guid? userId,
string userName, string? userName,
DateTime executionTime, DateTime executionTime,
int executionDuration, int executionDuration,
string clientIpAddress, string? clientIpAddress,
string clientName, string? clientName,
string clientId, string? clientId,
string correlationId, string? correlationId,
string browserInfo, string? browserInfo,
string httpMethod, string? httpMethod,
string url, string? url,
int? httpStatusCode, int? httpStatusCode,
Guid? impersonatorUserId, Guid? impersonatorUserId,
string impersonatorUserName, string? impersonatorUserName,
Guid? impersonatorTenantId, Guid? impersonatorTenantId,
string impersonatorTenantName, string? impersonatorTenantName,
ExtraPropertyDictionary extraPropertyDictionary, ExtraPropertyDictionary extraPropertyDictionary,
List<EntityChange> entityChanges, List<EntityChange> entityChanges,
List<AuditLogAction> actions, List<AuditLogAction> actions,
string exceptions, string? exceptions,
string comments) string? comments)
{ {
Id = id; Id = id;
ApplicationName = applicationName; ApplicationName = applicationName;
@ -119,4 +118,3 @@ namespace LINGYUN.Abp.AuditLogging
Comments = comments; Comments = comments;
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AuditLogAction.cs

@ -2,8 +2,8 @@
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
using Volo.Abp.Data; using Volo.Abp.Data;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[DisableAuditing] [DisableAuditing]
public class AuditLogAction : IHasExtraProperties public class AuditLogAction : IHasExtraProperties
{ {
@ -45,4 +45,3 @@ namespace LINGYUN.Abp.AuditLogging
// Parameters = actionInfo.Parameters.Length > 2000 ? "" : actionInfo.Parameters; // Parameters = actionInfo.Parameters.Length > 2000 ? "" : actionInfo.Parameters;
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/AuditingStore.cs

@ -2,8 +2,8 @@
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[Dependency(ReplaceServices = true)] [Dependency(ReplaceServices = true)]
public class AuditingStore : IAuditingStore, ITransientDependency public class AuditingStore : IAuditingStore, ITransientDependency
{ {
@ -20,4 +20,3 @@ namespace LINGYUN.Abp.AuditLogging
await _manager.SaveAsync(auditInfo); await _manager.SaveAsync(auditInfo);
} }
} }
}

43
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/DefaultAuditLogManager.cs

@ -8,8 +8,8 @@ using System.Threading.Tasks;
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[Dependency(TryRegister = true)] [Dependency(TryRegister = true)]
public class DefaultAuditLogManager : IAuditLogManager, ISingletonDependency public class DefaultAuditLogManager : IAuditLogManager, ISingletonDependency
{ {
@ -23,44 +23,44 @@ namespace LINGYUN.Abp.AuditLogging
public virtual Task<long> GetCountAsync( public virtual Task<long> GetCountAsync(
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string httpMethod = null, string? httpMethod = null,
string url = null, string? url = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string applicationName = null, string? applicationName = null,
string correlationId = null, string? correlationId = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
int? maxExecutionDuration = null, int? maxExecutionDuration = null,
int? minExecutionDuration = null, int? minExecutionDuration = null,
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
Logger.LogDebug("No audit log manager is available!"); Logger.LogDebug("No audit log manager is available!");
return Task.FromResult(0L); return Task.FromResult(0L);
} }
public virtual Task<List<AuditLog>> GetListAsync( public virtual Task<List<AuditLog>> GetListAsync(
string sorting = null, string? sorting = null,
int maxResultCount = 50, int maxResultCount = 50,
int skipCount = 0, int skipCount = 0,
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string httpMethod = null, string? httpMethod = null,
string url = null, string? url = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string applicationName = null, string? applicationName = null,
string correlationId = null, string? correlationId = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
int? maxExecutionDuration = null, int? maxExecutionDuration = null,
int? minExecutionDuration = null, int? minExecutionDuration = null,
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
Logger.LogDebug("No audit log manager is available!"); Logger.LogDebug("No audit log manager is available!");
return Task.FromResult(new List<AuditLog>()); return Task.FromResult(new List<AuditLog>());
@ -83,8 +83,8 @@ namespace LINGYUN.Abp.AuditLogging
{ {
Logger.LogDebug("No audit log manager is available!"); Logger.LogDebug("No audit log manager is available!");
AuditLog auditLog = null; AuditLog? auditLog = null;
return Task.FromResult(auditLog); return Task.FromResult(auditLog!);
} }
public virtual Task DeleteAsync(Guid id, CancellationToken cancellationToken = default) public virtual Task DeleteAsync(Guid id, CancellationToken cancellationToken = default)
@ -93,4 +93,3 @@ namespace LINGYUN.Abp.AuditLogging
return Task.CompletedTask; return Task.CompletedTask;
} }
} }
}

35
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/DefaultEntityChangeStore.cs

@ -5,31 +5,49 @@ using System.Threading.Tasks;
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[Dependency(TryRegister = true)] [Dependency(TryRegister = true)]
public class DefaultEntityChangeStore : IEntityChangeStore, ISingletonDependency public class DefaultEntityChangeStore : IEntityChangeStore, ISingletonDependency
{ {
public Task<EntityChange> GetAsync(Guid entityChangeId, CancellationToken cancellationToken = default) public Task<EntityChange?> GetAsync(Guid entityChangeId, CancellationToken cancellationToken = default)
{ {
EntityChange entityChange = null; EntityChange? entityChange = null;
return Task.FromResult(entityChange); return Task.FromResult(entityChange);
} }
public Task<long> GetCountAsync(Guid? auditLogId = null, DateTime? startTime = null, DateTime? endTime = null, EntityChangeType? changeType = null, string entityId = null, string entityTypeFullName = null, CancellationToken cancellationToken = default) public Task<long> GetCountAsync(
Guid? auditLogId = null,
DateTime? startTime = null,
DateTime? endTime = null,
EntityChangeType? changeType = null,
string? entityId = null,
string? entityTypeFullName = null,
CancellationToken cancellationToken = default)
{ {
return Task.FromResult(0L); return Task.FromResult(0L);
} }
public Task<List<EntityChange>> GetListAsync(string sorting = null, int maxResultCount = 50, int skipCount = 0, Guid? auditLogId = null, DateTime? startTime = null, DateTime? endTime = null, EntityChangeType? changeType = null, string entityId = null, string entityTypeFullName = null, bool includeDetails = false, CancellationToken cancellationToken = default) public Task<List<EntityChange>> GetListAsync(
string? sorting = null,
int maxResultCount = 50,
int skipCount = 0,
Guid? auditLogId = null,
DateTime? startTime = null,
DateTime? endTime = null,
EntityChangeType? changeType = null,
string? entityId = null,
string? entityTypeFullName = null,
bool includeDetails = false,
CancellationToken cancellationToken = default)
{ {
return Task.FromResult(new List<EntityChange>()); return Task.FromResult(new List<EntityChange>());
} }
public Task<EntityChangeWithUsername> GetWithUsernameAsync(Guid entityChangeId, CancellationToken cancellationToken = default) public Task<EntityChangeWithUsername> GetWithUsernameAsync(Guid entityChangeId, CancellationToken cancellationToken = default)
{ {
EntityChangeWithUsername entityChange = null; EntityChangeWithUsername? entityChange = null;
return Task.FromResult(entityChange); return Task.FromResult(entityChange!);
} }
public Task<List<EntityChangeWithUsername>> GetWithUsernameAsync(string entityId, string entityTypeFullName, CancellationToken cancellationToken = default) public Task<List<EntityChangeWithUsername>> GetWithUsernameAsync(string entityId, string entityTypeFullName, CancellationToken cancellationToken = default)
@ -37,4 +55,3 @@ namespace LINGYUN.Abp.AuditLogging
return Task.FromResult(new List<EntityChangeWithUsername>()); return Task.FromResult(new List<EntityChangeWithUsername>());
} }
} }
}

45
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/DefaultSecurityLogManager.cs

@ -7,8 +7,8 @@ using System.Threading.Tasks;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.SecurityLog; using Volo.Abp.SecurityLog;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[Dependency(TryRegister = true)] [Dependency(TryRegister = true)]
public class DefaultSecurityLogManager : ISecurityLogManager, ISingletonDependency public class DefaultSecurityLogManager : ISecurityLogManager, ISingletonDependency
{ {
@ -22,36 +22,36 @@ namespace LINGYUN.Abp.AuditLogging
public Task<long> GetCountAsync( public Task<long> GetCountAsync(
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string applicationName = null, string? applicationName = null,
string identity = null, string? identity = null,
string action = null, string? action = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
string correlationId = null, string? correlationId = null,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
Logger.LogDebug("No security log manager is available!"); Logger.LogDebug("No security log manager is available!");
return Task.FromResult(0L); return Task.FromResult(0L);
} }
public Task<List<SecurityLog>> GetListAsync( public Task<List<SecurityLog>> GetListAsync(
string sorting = null, string? sorting = null,
int maxResultCount = 50, int maxResultCount = 50,
int skipCount = 0, int skipCount = 0,
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string applicationName = null, string? applicationName = null,
string identity = null, string? identity = null,
string action = null, string? action = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
string correlationId = null, string? correlationId = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
Logger.LogDebug("No security log manager is available!"); Logger.LogDebug("No security log manager is available!");
return Task.FromResult(new List<SecurityLog>()); return Task.FromResult(new List<SecurityLog>());
@ -59,7 +59,7 @@ namespace LINGYUN.Abp.AuditLogging
public Task SaveAsync( public Task SaveAsync(
SecurityLogInfo securityLogInfo, SecurityLogInfo securityLogInfo,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default)
{ {
Logger.LogDebug("No security log manager is available and is written to the local log by default"); Logger.LogDebug("No security log manager is available and is written to the local log by default");
Logger.LogInformation(securityLogInfo.ToString()); Logger.LogInformation(securityLogInfo.ToString());
@ -74,8 +74,8 @@ namespace LINGYUN.Abp.AuditLogging
{ {
Logger.LogDebug("No security log manager is available!"); Logger.LogDebug("No security log manager is available!");
SecurityLog securityLog = null; SecurityLog? securityLog = null;
return Task.FromResult(securityLog); return Task.FromResult(securityLog!);
} }
public virtual Task DeleteAsync(Guid id, CancellationToken cancellationToken = default) public virtual Task DeleteAsync(Guid id, CancellationToken cancellationToken = default)
@ -84,4 +84,3 @@ namespace LINGYUN.Abp.AuditLogging
return Task.CompletedTask; return Task.CompletedTask;
} }
} }
}

9
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/EntityChange.cs

@ -5,8 +5,8 @@ using Volo.Abp.Auditing;
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.Guids; using Volo.Abp.Guids;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[DisableAuditing] [DisableAuditing]
public class EntityChange : IHasExtraProperties public class EntityChange : IHasExtraProperties
{ {
@ -22,9 +22,9 @@ namespace LINGYUN.Abp.AuditLogging
public Guid? EntityTenantId { get; set; } public Guid? EntityTenantId { get; set; }
public string EntityId { get; set; } public string? EntityId { get; set; }
public string EntityTypeFullName { get; set; } public string? EntityTypeFullName { get; set; }
public List<EntityPropertyChange> PropertyChanges { get; set; } public List<EntityPropertyChange> PropertyChanges { get; set; }
@ -68,4 +68,3 @@ namespace LINGYUN.Abp.AuditLogging
} }
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/EntityChangeWithUsername.cs

@ -1,9 +1,8 @@
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public class EntityChangeWithUsername public class EntityChangeWithUsername
{ {
public EntityChange EntityChange { get; set; } public EntityChange EntityChange { get; set; }
public string UserName { get; set; } public string UserName { get; set; }
} }
}

9
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/EntityPropertyChange.cs

@ -2,8 +2,8 @@
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
using Volo.Abp.Guids; using Volo.Abp.Guids;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[DisableAuditing] [DisableAuditing]
public class EntityPropertyChange public class EntityPropertyChange
{ {
@ -13,9 +13,9 @@ namespace LINGYUN.Abp.AuditLogging
public Guid EntityChangeId { get; set; } public Guid EntityChangeId { get; set; }
public string NewValue { get; set; } public string? NewValue { get; set; }
public string OriginalValue { get; set; } public string? OriginalValue { get; set; }
public string PropertyName { get; set; } public string PropertyName { get; set; }
@ -40,4 +40,3 @@ namespace LINGYUN.Abp.AuditLogging
PropertyTypeFullName = entityChangeInfo.PropertyTypeFullName; PropertyTypeFullName = entityChangeInfo.PropertyTypeFullName;
} }
} }
}

45
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/IAuditLogManager.cs

@ -5,60 +5,59 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public interface IAuditLogManager public interface IAuditLogManager
{ {
Task<AuditLog> GetAsync( Task<AuditLog> GetAsync(
Guid id, Guid id,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task DeleteAsync( Task DeleteAsync(
Guid id, Guid id,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task<string> SaveAsync( Task<string> SaveAsync(
AuditLogInfo auditInfo, AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task<long> GetCountAsync( Task<long> GetCountAsync(
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string httpMethod = null, string? httpMethod = null,
string url = null, string? url = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string applicationName = null, string? applicationName = null,
string correlationId = null, string? correlationId = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
int? maxExecutionDuration = null, int? maxExecutionDuration = null,
int? minExecutionDuration = null, int? minExecutionDuration = null,
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task<List<AuditLog>> GetListAsync( Task<List<AuditLog>> GetListAsync(
string sorting = null, string? sorting = null,
int maxResultCount = 50, int maxResultCount = 50,
int skipCount = 0, int skipCount = 0,
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string httpMethod = null, string? httpMethod = null,
string url = null, string? url = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string applicationName = null, string? applicationName = null,
string correlationId = null, string? correlationId = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
int? maxExecutionDuration = null, int? maxExecutionDuration = null,
int? minExecutionDuration = null, int? minExecutionDuration = null,
bool? hasException = null, bool? hasException = null,
HttpStatusCode? httpStatusCode = null, HttpStatusCode? httpStatusCode = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
} }
}

17
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/IEntityChangeStore.cs

@ -4,11 +4,11 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public interface IEntityChangeStore public interface IEntityChangeStore
{ {
Task<EntityChange> GetAsync( Task<EntityChange?> GetAsync(
Guid entityChangeId, Guid entityChangeId,
CancellationToken cancellationToken = default); CancellationToken cancellationToken = default);
@ -17,20 +17,20 @@ namespace LINGYUN.Abp.AuditLogging
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
EntityChangeType? changeType = null, EntityChangeType? changeType = null,
string entityId = null, string? entityId = null,
string entityTypeFullName = null, string? entityTypeFullName = null,
CancellationToken cancellationToken = default); CancellationToken cancellationToken = default);
Task<List<EntityChange>> GetListAsync( Task<List<EntityChange>> GetListAsync(
string sorting = null, string? sorting = null,
int maxResultCount = 50, int maxResultCount = 50,
int skipCount = 0, int skipCount = 0,
Guid? auditLogId = null, Guid? auditLogId = null,
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
EntityChangeType? changeType = null, EntityChangeType? changeType = null,
string entityId = null, string? entityId = null,
string entityTypeFullName = null, string? entityTypeFullName = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default); CancellationToken cancellationToken = default);
@ -43,4 +43,3 @@ namespace LINGYUN.Abp.AuditLogging
string entityTypeFullName, string entityTypeFullName,
CancellationToken cancellationToken = default); CancellationToken cancellationToken = default);
} }
}

45
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/ISecurityLogManager.cs

@ -4,53 +4,52 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.SecurityLog; using Volo.Abp.SecurityLog;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public interface ISecurityLogManager public interface ISecurityLogManager
{ {
Task<SecurityLog> GetAsync( Task<SecurityLog> GetAsync(
Guid id, Guid id,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task DeleteAsync( Task DeleteAsync(
Guid id, Guid id,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task SaveAsync( Task SaveAsync(
SecurityLogInfo securityLogInfo, SecurityLogInfo securityLogInfo,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task<List<SecurityLog>> GetListAsync( Task<List<SecurityLog>> GetListAsync(
string sorting = null, string? sorting = null,
int maxResultCount = 50, int maxResultCount = 50,
int skipCount = 0, int skipCount = 0,
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string applicationName = null, string? applicationName = null,
string identity = null, string? identity = null,
string action = null, string? action = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
string correlationId = null, string? correlationId = null,
bool includeDetails = false, bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
Task<long> GetCountAsync( Task<long> GetCountAsync(
DateTime? startTime = null, DateTime? startTime = null,
DateTime? endTime = null, DateTime? endTime = null,
string applicationName = null, string? applicationName = null,
string identity = null, string? identity = null,
string action = null, string? action = null,
Guid? userId = null, Guid? userId = null,
string userName = null, string? userName = null,
string clientId = null, string? clientId = null,
string clientIpAddress = null, string? clientIpAddress = null,
string correlationId = null, string? correlationId = null,
CancellationToken cancellationToken = default(CancellationToken)); CancellationToken cancellationToken = default);
} }
}

23
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/SecurityLog.cs

@ -2,33 +2,33 @@
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.SecurityLog; using Volo.Abp.SecurityLog;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
public class SecurityLog : IHasExtraProperties public class SecurityLog : IHasExtraProperties
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public Guid? TenantId { get; set; } public Guid? TenantId { get; set; }
public string ApplicationName { get; set; } public string? ApplicationName { get; set; }
public string Identity { get; set; } public string? Identity { get; set; }
public string Action { get; set; } public string? Action { get; set; }
public Guid? UserId { get; set; } public Guid? UserId { get; set; }
public string UserName { get; set; } public string? UserName { get; set; }
public string TenantName { get; set; } public string? TenantName { get; set; }
public string ClientId { get; set; } public string? ClientId { get; set; }
public string CorrelationId { get; set; } public string? CorrelationId { get; set; }
public string ClientIpAddress { get; set; } public string? ClientIpAddress { get; set; }
public string BrowserInfo { get; set; } public string? BrowserInfo { get; set; }
public DateTime CreationTime { get; set; } public DateTime CreationTime { get; set; }
@ -69,4 +69,3 @@ namespace LINGYUN.Abp.AuditLogging
} }
} }
} }
}

5
aspnet-core/framework/auditing/LINGYUN.Abp.AuditLogging/LINGYUN/Abp/AuditLogging/SecurityLogStore.cs

@ -2,8 +2,8 @@
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.SecurityLog; using Volo.Abp.SecurityLog;
namespace LINGYUN.Abp.AuditLogging namespace LINGYUN.Abp.AuditLogging;
{
[Dependency(ReplaceServices = true)] [Dependency(ReplaceServices = true)]
public class SecurityLogStore : ISecurityLogStore, ITransientDependency public class SecurityLogStore : ISecurityLogStore, ITransientDependency
{ {
@ -20,4 +20,3 @@ namespace LINGYUN.Abp.AuditLogging
await _manager.SaveAsync(securityLogInfo); await _manager.SaveAsync(securityLogInfo);
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/LINGYUN.Abp.Authentication.QQ.csproj

@ -5,6 +5,11 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<AssemblyName>LINGYUN.Abp.Authentication.QQ</AssemblyName>
<PackageId>LINGYUN.Abp.Authentication.QQ</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/LINGYUN/Abp/Authentication/QQ/AbpQQClaimTypes.cs

@ -1,5 +1,5 @@
namespace LINGYUN.Abp.Authentication.QQ namespace LINGYUN.Abp.Authentication.QQ;
{
/// <summary> /// <summary>
/// QQ互联身份类型,可以像 <see cref="Volo.Abp.Security.Claims.AbpClaimTypes"/> 自行配置 /// QQ互联身份类型,可以像 <see cref="Volo.Abp.Security.Claims.AbpClaimTypes"/> 自行配置
/// <br /> /// <br />
@ -28,4 +28,3 @@
/// </remarks> /// </remarks>
public static string AvatarUrl { get; set; } = "avatar"; public static string AvatarUrl { get; set; } = "avatar";
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/Microsoft/AspNetCore/Authentication/QQ/QQConnectOAuthHandler.cs

@ -12,8 +12,8 @@ using System.Text.Encodings.Web;
using System.Text.Json; using System.Text.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Microsoft.AspNetCore.Authentication.QQ namespace Microsoft.AspNetCore.Authentication.QQ;
{
/// <summary> /// <summary>
/// QQ互联实现 /// QQ互联实现
/// </summary> /// </summary>
@ -173,4 +173,3 @@ namespace Microsoft.AspNetCore.Authentication.QQ
return new AuthenticationTicket(context.Principal, context.Properties, Scheme.Name); return new AuthenticationTicket(context.Principal, context.Properties, Scheme.Name);
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/Microsoft/AspNetCore/Authentication/QQ/QQConnectOAuthOptions.cs

@ -3,8 +3,8 @@ using Microsoft.AspNetCore.Authentication.OAuth;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using System.Security.Claims; using System.Security.Claims;
namespace Microsoft.AspNetCore.Authentication.QQ namespace Microsoft.AspNetCore.Authentication.QQ;
{
public class QQConnectOAuthOptions : OAuthOptions public class QQConnectOAuthOptions : OAuthOptions
{ {
/// <summary> /// <summary>
@ -43,4 +43,3 @@ namespace Microsoft.AspNetCore.Authentication.QQ
ClaimActions.MapJsonKey(AbpQQClaimTypes.AvatarUrl, "figureurl_qq_1"); ClaimActions.MapJsonKey(AbpQQClaimTypes.AvatarUrl, "figureurl_qq_1");
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/Microsoft/AspNetCore/Authentication/QQAuthenticationExtensions.cs

@ -3,8 +3,8 @@ using Microsoft.AspNetCore.Authentication.QQ;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using System; using System;
namespace Microsoft.AspNetCore.Authentication namespace Microsoft.AspNetCore.Authentication;
{
public static class QQAuthenticationExtensions public static class QQAuthenticationExtensions
{ {
/// <summary> /// <summary>
@ -60,4 +60,3 @@ namespace Microsoft.AspNetCore.Authentication
configureOptions); configureOptions);
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/System/BytesExtensions.cs

@ -1,7 +1,7 @@
using System.Security.Cryptography; using System.Security.Cryptography;
namespace System namespace System;
{
internal static class BytesExtensions internal static class BytesExtensions
{ {
public static byte[] Sha1(this byte[] data) public static byte[] Sha1(this byte[] data)
@ -13,4 +13,3 @@ namespace System
} }
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/System/StringExtensions.cs

@ -1,8 +1,8 @@
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
namespace System namespace System;
{
internal static class StringExtensions internal static class StringExtensions
{ {
public static byte[] Sha1(this string str) public static byte[] Sha1(this string str)
@ -14,4 +14,3 @@ namespace System
} }
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.QQ/System/Text/Json/JsonElementExtensions.cs

@ -1,7 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace System.Text.Json namespace System.Text.Json;
{
internal static class JsonElementExtensions internal static class JsonElementExtensions
{ {
public static IEnumerable<string> GetRootStrings(this JsonDocument json, string key) public static IEnumerable<string> GetRootStrings(this JsonDocument json, string key)
@ -60,4 +60,3 @@ namespace System.Text.Json
return defaultValue; return defaultValue;
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/LINGYUN.Abp.Authentication.WeChat.csproj

@ -5,6 +5,11 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<AssemblyName>LINGYUN.Abp.Authentication.WeChat</AssemblyName>
<PackageId>LINGYUN.Abp.Authentication.WeChat</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChat/Official/WeChatOfficialOAuthHandler.cs

@ -16,8 +16,8 @@ using System.Text.Encodings.Web;
using System.Text.Json; using System.Text.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Microsoft.AspNetCore.Authentication.WeChat.Official namespace Microsoft.AspNetCore.Authentication.WeChat.Official;
{
/// <summary> /// <summary>
/// 网页授权只有公众平台的实现 /// 网页授权只有公众平台的实现
/// </summary> /// </summary>
@ -311,4 +311,3 @@ namespace Microsoft.AspNetCore.Authentication.WeChat.Official
return userAgent.Contains("micromessenger", StringComparison.InvariantCultureIgnoreCase); return userAgent.Contains("micromessenger", StringComparison.InvariantCultureIgnoreCase);
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChat/Official/WeChatOfficialOAuthOptions.cs

@ -5,8 +5,8 @@ using Microsoft.AspNetCore.Http;
using System.Security.Claims; using System.Security.Claims;
using System.Text.Json; using System.Text.Json;
namespace Microsoft.AspNetCore.Authentication.WeChat.Official namespace Microsoft.AspNetCore.Authentication.WeChat.Official;
{
public class WeChatOfficialOAuthOptions : OAuthOptions public class WeChatOfficialOAuthOptions : OAuthOptions
{ {
public WeChatOfficialOAuthOptions() public WeChatOfficialOAuthOptions()
@ -44,4 +44,3 @@ namespace Microsoft.AspNetCore.Authentication.WeChat.Official
}); });
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChat/Official/WeChatOfficialStateCacheItem.cs

@ -1,5 +1,5 @@
namespace Microsoft.AspNetCore.Authentication.WeChat.Official namespace Microsoft.AspNetCore.Authentication.WeChat.Official;
{
public class WeChatOfficialStateCacheItem public class WeChatOfficialStateCacheItem
{ {
public string State { get; set; } public string State { get; set; }
@ -15,4 +15,3 @@
return $"ci:{correlationId};p:{purpose ?? "null"}"; return $"ci:{correlationId};p:{purpose ?? "null"}";
} }
} }
}

5
aspnet-core/framework/authentication/LINGYUN.Abp.Authentication.WeChat/Microsoft/AspNetCore/Authentication/WeChatAuthenticationExtensions.cs

@ -4,8 +4,8 @@ using Microsoft.AspNetCore.Authentication.WeChat.Official;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using System; using System;
namespace Microsoft.AspNetCore.Authentication namespace Microsoft.AspNetCore.Authentication;
{
public static class WeChatAuthenticationExtensions public static class WeChatAuthenticationExtensions
{ {
/// <summary> /// <summary>
@ -62,4 +62,3 @@ namespace Microsoft.AspNetCore.Authentication
configureOptions); configureOptions);
} }
} }
}

9
aspnet-core/framework/authorization/LINGYUN.Abp.Authorization.OrganizationUnits/LINGYUN.Abp.Authorization.OrganizationUnits.csproj

@ -4,7 +4,14 @@
<Import Project="..\..\..\..\common.props" /> <Import Project="..\..\..\..\common.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>LINGYUN.Abp.Authorization.OrganizationUnits</AssemblyName>
<PackageId>LINGYUN.Abp.Authorization.OrganizationUnits</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj

@ -5,7 +5,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Version>8.1.1</Version> <Version>8.2.0</Version>
<Copyright>colin</Copyright> <Copyright>colin</Copyright>
<Description>Use LINGYUN.MicroService.Templates command line</Description> <Description>Use LINGYUN.MicroService.Templates command line</Description>
<PackAsTool>true</PackAsTool> <PackAsTool>true</PackAsTool>

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN.Abp.Aliyun.SettingManagement.csproj

@ -5,6 +5,11 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<AssemblyName>LINGYUN.Abp.Aliyun.SettingManagement</AssemblyName>
<PackageId>LINGYUN.Abp.Aliyun.SettingManagement</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AbpAliyunSettingManagementModule.cs

@ -7,8 +7,8 @@ using Volo.Abp.Localization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.VirtualFileSystem; using Volo.Abp.VirtualFileSystem;
namespace LINGYUN.Abp.Aliyun.SettingManagement namespace LINGYUN.Abp.Aliyun.SettingManagement;
{
[DependsOn( [DependsOn(
typeof(AbpAliyunModule), typeof(AbpAliyunModule),
typeof(AbpAliyunSmsModule), typeof(AbpAliyunSmsModule),
@ -39,4 +39,3 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
}); });
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingAppService.cs

@ -11,8 +11,8 @@ using Volo.Abp.SettingManagement;
using Volo.Abp.Settings; using Volo.Abp.Settings;
using ValueType = LINGYUN.Abp.SettingManagement.ValueType; using ValueType = LINGYUN.Abp.SettingManagement.ValueType;
namespace LINGYUN.Abp.Aliyun.SettingManagement namespace LINGYUN.Abp.Aliyun.SettingManagement;
{
public class AliyunSettingAppService : ApplicationService, IAliyunSettingAppService public class AliyunSettingAppService : ApplicationService, IAliyunSettingAppService
{ {
protected ISettingManager SettingManager { get; } protected ISettingManager SettingManager { get; }
@ -199,4 +199,3 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
}; };
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingController.cs

@ -4,8 +4,8 @@ using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
namespace LINGYUN.Abp.Aliyun.SettingManagement namespace LINGYUN.Abp.Aliyun.SettingManagement;
{
[RemoteService(Name = AbpSettingManagementRemoteServiceConsts.RemoteServiceName)] [RemoteService(Name = AbpSettingManagementRemoteServiceConsts.RemoteServiceName)]
[Area("settingManagement")] [Area("settingManagement")]
[Route("api/setting-management/aliyun")] [Route("api/setting-management/aliyun")]
@ -33,4 +33,3 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
return await AppService.GetAllForGlobalAsync(); return await AppService.GetAllForGlobalAsync();
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingPermissionDefinitionProvider.cs

@ -2,8 +2,8 @@
using Volo.Abp.Authorization.Permissions; using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization; using Volo.Abp.Localization;
namespace LINGYUN.Abp.Aliyun.SettingManagement namespace LINGYUN.Abp.Aliyun.SettingManagement;
{
public class AliyunSettingPermissionDefinitionProvider : PermissionDefinitionProvider public class AliyunSettingPermissionDefinitionProvider : PermissionDefinitionProvider
{ {
public override void Define(IPermissionDefinitionContext context) public override void Define(IPermissionDefinitionContext context)
@ -21,4 +21,3 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
return LocalizableString.Create<AliyunResource>(name); return LocalizableString.Create<AliyunResource>(name);
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingPermissionNames.cs

@ -1,9 +1,8 @@
namespace LINGYUN.Abp.Aliyun.SettingManagement namespace LINGYUN.Abp.Aliyun.SettingManagement;
{
public class AliyunSettingPermissionNames public class AliyunSettingPermissionNames
{ {
public const string GroupName = "Abp.Aliyun"; public const string GroupName = "Abp.Aliyun";
public const string Settings = GroupName + ".Settings"; public const string Settings = GroupName + ".Settings";
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/IAliyunSettingAppService.cs

@ -1,8 +1,7 @@
using LINGYUN.Abp.SettingManagement; using LINGYUN.Abp.SettingManagement;
namespace LINGYUN.Abp.Aliyun.SettingManagement namespace LINGYUN.Abp.Aliyun.SettingManagement;
{
public interface IAliyunSettingAppService : IReadonlySettingAppService public interface IAliyunSettingAppService : IReadonlySettingAppService
{ {
} }
}

7
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN.Abp.Aliyun.csproj

@ -4,7 +4,12 @@
<Import Project="..\..\..\..\common.props" /> <Import Project="..\..\..\..\common.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<AssemblyName>LINGYUN.Abp.Aliyun</AssemblyName>
<PackageId>LINGYUN.Abp.Aliyun</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
<Description>阿里云SDK基础框架</Description> <Description>阿里云SDK基础框架</Description>
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AbpAliyunException.cs

@ -3,8 +3,8 @@ using Volo.Abp;
using Volo.Abp.ExceptionHandling; using Volo.Abp.ExceptionHandling;
using Volo.Abp.Logging; using Volo.Abp.Logging;
namespace LINGYUN.Abp.Aliyun namespace LINGYUN.Abp.Aliyun;
{
public class AbpAliyunException : AbpException, IHasErrorCode, IHasLogLevel public class AbpAliyunException : AbpException, IHasErrorCode, IHasLogLevel
{ {
public LogLevel LogLevel { get; set; } public LogLevel LogLevel { get; set; }
@ -18,4 +18,3 @@ namespace LINGYUN.Abp.Aliyun
LogLevel = LogLevel.Warning; LogLevel = LogLevel.Warning;
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AbpAliyunModule.cs

@ -7,8 +7,8 @@ using Volo.Abp.Modularity;
using Volo.Abp.Settings; using Volo.Abp.Settings;
using Volo.Abp.VirtualFileSystem; using Volo.Abp.VirtualFileSystem;
namespace LINGYUN.Abp.Aliyun namespace LINGYUN.Abp.Aliyun;
{
[DependsOn( [DependsOn(
typeof(AbpCachingModule), typeof(AbpCachingModule),
typeof(AbpSettingsModule), typeof(AbpSettingsModule),
@ -32,4 +32,3 @@ namespace LINGYUN.Abp.Aliyun
}); });
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AcsClientFactory.cs

@ -7,8 +7,8 @@ using Volo.Abp.DependencyInjection;
using Volo.Abp.Features; using Volo.Abp.Features;
using Volo.Abp.Settings; using Volo.Abp.Settings;
namespace LINGYUN.Abp.Aliyun namespace LINGYUN.Abp.Aliyun;
{
[RequiresFeature(AliyunFeatureNames.Enable)] [RequiresFeature(AliyunFeatureNames.Enable)]
public class AcsClientFactory : AliyunClientFactory<IAcsClient>, IAcsClientFactory, ITransientDependency public class AcsClientFactory : AliyunClientFactory<IAcsClient>, IAcsClientFactory, ITransientDependency
{ {
@ -32,4 +32,3 @@ namespace LINGYUN.Abp.Aliyun
return new DefaultAcsClient(profile, credentials); return new DefaultAcsClient(profile, credentials);
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AliyunBasicSessionCredentialsCacheItem.cs

@ -1,7 +1,7 @@
using System; using System;
namespace LINGYUN.Abp.Aliyun namespace LINGYUN.Abp.Aliyun;
{
[Serializable] [Serializable]
public class AliyunBasicSessionCredentialsCacheItem public class AliyunBasicSessionCredentialsCacheItem
{ {
@ -28,4 +28,3 @@ namespace LINGYUN.Abp.Aliyun
SecurityToken = securityToken; SecurityToken = securityToken;
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/AliyunClientFactory.cs

@ -10,8 +10,8 @@ using Volo.Abp;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Settings; using Volo.Abp.Settings;
namespace LINGYUN.Abp.Aliyun namespace LINGYUN.Abp.Aliyun;
{
/// <summary> /// <summary>
/// 阿里云通用客户端构建工厂 /// 阿里云通用客户端构建工厂
/// </summary> /// </summary>
@ -177,4 +177,3 @@ namespace LINGYUN.Abp.Aliyun
return cacheItem; return cacheItem;
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/IAcsClientFactory.cs

@ -1,8 +1,8 @@
using Aliyun.Acs.Core; using Aliyun.Acs.Core;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace LINGYUN.Abp.Aliyun namespace LINGYUN.Abp.Aliyun;
{
public interface IAcsClientFactory public interface IAcsClientFactory
{ {
/// <summary> /// <summary>
@ -12,4 +12,3 @@ namespace LINGYUN.Abp.Aliyun
/// <returns></returns> /// <returns></returns>
Task<IAcsClient> CreateAsync(); Task<IAcsClient> CreateAsync();
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Localization/AliyunResource.cs

@ -1,9 +1,8 @@
using Volo.Abp.Localization; using Volo.Abp.Localization;
namespace LINGYUN.Abp.Aliyun.Localization namespace LINGYUN.Abp.Aliyun.Localization;
{
[LocalizationResourceName("Aliyun")] [LocalizationResourceName("Aliyun")]
public class AliyunResource public class AliyunResource
{ {
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingNames.cs

@ -1,5 +1,5 @@
namespace LINGYUN.Abp.Aliyun.Settings namespace LINGYUN.Abp.Aliyun.Settings;
{
public static class AliyunSettingNames public static class AliyunSettingNames
{ {
public const string Prefix = "Abp.Aliyun"; public const string Prefix = "Abp.Aliyun";
@ -80,4 +80,3 @@
public const string VisableErrorToClient = Prefix + ".VisableErrorToClient"; public const string VisableErrorToClient = Prefix + ".VisableErrorToClient";
} }
} }
}

5
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingProvider.cs

@ -2,8 +2,8 @@
using Volo.Abp.Localization; using Volo.Abp.Localization;
using Volo.Abp.Settings; using Volo.Abp.Settings;
namespace LINGYUN.Abp.Aliyun.Settings namespace LINGYUN.Abp.Aliyun.Settings;
{
public class AliyunSettingProvider : SettingDefinitionProvider public class AliyunSettingProvider : SettingDefinitionProvider
{ {
public override void Define(ISettingDefinitionContext context) public override void Define(ISettingDefinitionContext context)
@ -209,4 +209,3 @@ namespace LINGYUN.Abp.Aliyun.Settings
return LocalizableString.Create<AliyunResource>(name); return LocalizableString.Create<AliyunResource>(name);
} }
} }
}

7
aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN.Abp.BlobStoring.Tencent.csproj

@ -4,7 +4,12 @@
<Import Project="..\..\..\..\common.props" /> <Import Project="..\..\..\..\common.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<AssemblyName>LINGYUN.Abp.BlobStoring.Tencent</AssemblyName>
<PackageId>LINGYUN.Abp.BlobStoring.Tencent</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace /> <RootNamespace />
<Description>腾讯云Oss对象存储Abp集成</Description> <Description>腾讯云Oss对象存储Abp集成</Description>
</PropertyGroup> </PropertyGroup>

5
aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/DefaultTencentBlobNameCalculator.cs

@ -2,8 +2,8 @@
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
namespace LINGYUN.Abp.BlobStoring.Tencent namespace LINGYUN.Abp.BlobStoring.Tencent;
{
public class DefaultTencentBlobNameCalculator : ITencentBlobNameCalculator, ITransientDependency public class DefaultTencentBlobNameCalculator : ITencentBlobNameCalculator, ITransientDependency
{ {
protected ICurrentTenant CurrentTenant { get; } protected ICurrentTenant CurrentTenant { get; }
@ -21,4 +21,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
: $"tenants/{CurrentTenant.Id.Value:D}/{args.BlobName}"; : $"tenants/{CurrentTenant.Id.Value:D}/{args.BlobName}";
} }
} }
}

5
aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/ITencentBlobNameCalculator.cs

@ -1,9 +1,8 @@
using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring;
namespace LINGYUN.Abp.BlobStoring.Tencent namespace LINGYUN.Abp.BlobStoring.Tencent;
{
public interface ITencentBlobNameCalculator public interface ITencentBlobNameCalculator
{ {
string Calculate(BlobProviderArgs args); string Calculate(BlobProviderArgs args);
} }
}

5
aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobContainerConfigurationExtensions.cs

@ -1,8 +1,8 @@
using System; using System;
using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring;
namespace LINGYUN.Abp.BlobStoring.Tencent namespace LINGYUN.Abp.BlobStoring.Tencent;
{
public static class TencentBlobContainerConfigurationExtensions public static class TencentBlobContainerConfigurationExtensions
{ {
public static TencentBlobProviderConfiguration GetTencentConfiguration( public static TencentBlobProviderConfiguration GetTencentConfiguration(
@ -22,4 +22,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
return containerConfiguration; return containerConfiguration;
} }
} }
}

5
aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobNamingNormalizer.cs

@ -2,8 +2,8 @@
using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace LINGYUN.Abp.BlobStoring.Tencent namespace LINGYUN.Abp.BlobStoring.Tencent;
{
public class TencentBlobNamingNormalizer : IBlobNamingNormalizer, ITransientDependency public class TencentBlobNamingNormalizer : IBlobNamingNormalizer, ITransientDependency
{ {
/// <summary> /// <summary>
@ -58,4 +58,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
return containerName; return containerName;
} }
} }
}

5
aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobProviderConfiguration.cs

@ -2,8 +2,8 @@
using Volo.Abp; using Volo.Abp;
using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring;
namespace LINGYUN.Abp.BlobStoring.Tencent namespace LINGYUN.Abp.BlobStoring.Tencent;
{
public class TencentBlobProviderConfiguration public class TencentBlobProviderConfiguration
{ {
/// <summary> /// <summary>
@ -60,4 +60,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
_containerConfiguration = containerConfiguration; _containerConfiguration = containerConfiguration;
} }
} }
}

5
aspnet-core/framework/cloud-tencent/LINGYUN.Abp.BlobStoring.Tencent/LINGYUN/Abp/BlobStoring/Tencent/TencentBlobProviderConfigurationNames.cs

@ -1,5 +1,5 @@
namespace LINGYUN.Abp.BlobStoring.Tencent namespace LINGYUN.Abp.BlobStoring.Tencent;
{
public static class TencentBlobProviderConfigurationNames public static class TencentBlobProviderConfigurationNames
{ {
/// <summary> /// <summary>
@ -23,4 +23,3 @@
/// </summary> /// </summary>
public const string CreateBucketReferer = "Tencent:OSS:CreateBucketReferer"; public const string CreateBucketReferer = "Tencent:OSS:CreateBucketReferer";
} }
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save