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:
push:
branches: [ rel-8.1.3 ]
branches: [ rel-8.2.0 ]
env:
DOTNET_VERSION: "8.0.200"

4
.github/workflows/release.yml

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

22
Directory.Packages.props

@ -2,17 +2,16 @@
<PropertyGroup>
<DotNetCoreCAPPackageVersion>8.1.1</DotNetCoreCAPPackageVersion>
<ElsaPackageVersion>2.14.1</ElsaPackageVersion>
<VoloAbpPackageVersion>8.1.3</VoloAbpPackageVersion>
<LINGYUNAbpPackageVersion>8.1.3</LINGYUNAbpPackageVersion>
<VoloAbpPackageVersion>8.2.0</VoloAbpPackageVersion>
<LINGYUNAbpPackageVersion>8.2.0</LINGYUNAbpPackageVersion>
<MicrosoftExtensionsPackageVersion>8.0.0</MicrosoftExtensionsPackageVersion>
<MicrosoftAspNetCorePackageVersion>8.0.0</MicrosoftAspNetCorePackageVersion>
<MicrosoftEntityFrameworkCorePackageVersion>8.0.0</MicrosoftEntityFrameworkCorePackageVersion>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<!-- Abp Framework -->
<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.Account.Application" 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.Validation" Version="$(VoloAbpPackageVersion)" />
</ItemGroup>
<!-- .NET -->
<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.DataProtection.StackExchangeRedis" 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.Polly" 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>
<!-- Elsa -->
<ItemGroup>
<PackageVersion Include="Elsa" Version="$(ElsaPackageVersion)" />
@ -172,7 +169,6 @@
<PackageVersion Include="Elsa.Webhooks.Persistence.EntityFramework.MySql" Version="$(ElsaPackageVersion)" />
<PackageVersion Include="Elsa.WorkflowSettings.Persistence.EntityFramework.MySql" Version="$(ElsaPackageVersion)" />
</ItemGroup>
<!-- DotNetCore.CAP -->
<ItemGroup>
<PackageVersion Include="DotNetCore.CAP" Version="$(DotNetCoreCAPPackageVersion)" />
@ -181,7 +177,6 @@
<PackageVersion Include="DotNetCore.CAP.OpenTelemetry" Version="$(DotNetCoreCAPPackageVersion)" />
<PackageVersion Include="DotNetCore.CAP.RabbitMQ" Version="$(DotNetCoreCAPPackageVersion)" />
</ItemGroup>
<!-- Serilog -->
<ItemGroup>
<PackageVersion Include="Serilog" Version="3.1.1" />
@ -198,7 +193,6 @@
<PackageVersion Include="Serilog.Sinks.Elasticsearch" Version="9.0.3" />
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
</ItemGroup>
<!-- Test -->
<ItemGroup>
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
@ -210,13 +204,11 @@
<PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" />
</ItemGroup>
<!-- Fody -->
<ItemGroup>
<PackageVersion Include="ConfigureAwait.Fody" Version="3.3.2" />
<PackageVersion Include="Fody" Version="6.8.0" />
</ItemGroup>
<!-- Other -->
<ItemGroup>
<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.Redis" Version="1.0.2" />
<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="JetBrains.Annotations" Version="2023.3.0" />
<PackageVersion Include="Markdig" Version="0.34.0" />
@ -236,6 +228,8 @@
<PackageVersion Include="NEST" Version="7.15.1" />
<PackageVersion Include="NRules" Version="0.9.2" />
<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.Exporter.Console" 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;
}) => {
return defHttp.get<ApplicationLocalizationDto>({
url: 'api/abp/application-localization"',
url: '/api/abp/application-localization"',
params: input,
});
};

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

@ -12,7 +12,9 @@ import {
AuthenticatorDto,
VerifyAuthenticatorCodeInput,
AuthenticatorRecoveryCodeDto,
GetUserSessionsInput,
} from './model';
import { IdentitySessionDto } from '../../identity/sessions/model';
export const get = () => {
return defHttp.get<MyProfile>({
@ -93,3 +95,24 @@ export const resetAuthenticator = () => {
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;
}
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) => {
return defHttp.get<PagedResultDto<SecurityLog>>({
url: 'api/auditing/security-log',
url: '/api/auditing/security-log',
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) => {
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) => {
return defHttp.put<void>({
url: `api/identity/organization-units/${id}/move`,
url: `/api/identity/organization-units/${id}/move`,
data: {
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) => {
return defHttp.post<Language>({
url: '/api/abp/localization/languages',
url: '/api/localization/languages',
data: input,
});
};

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

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

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

@ -1,6 +1,6 @@
<template>
<div :class="prefixCls">
<Badge :count="count" dot :numberStyle="numberStyle">
<Badge :count="count" dot :numberStyle="{}">
<BellOutlined @click="showDrawer" />
</Badge>
<Drawer
@ -39,44 +39,11 @@
</TabPane>
</Tabs>
</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>
</template>
<script lang="ts">
import { computed, defineComponent, ref } from 'vue';
import { Button, Drawer, Popover, Tabs, Badge } from 'ant-design-vue';
<script lang="ts" setup>
import { computed, ref } from 'vue';
import { Button, Drawer, Tabs, Badge } from 'ant-design-vue';
import { BellOutlined } from '@ant-design/icons-vue';
import NoticeList from './NoticeList.vue';
import { useGo } from '/@/hooks/web/usePage';
@ -85,19 +52,9 @@
import { useMessages } from './useMessages';
import { useNotifications } from './useNotifications';
export default defineComponent({
components: {
Button,
ButtonGroup: Button.Group,
Drawer,
Popover,
BellOutlined,
Tabs,
TabPane: Tabs.TabPane,
Badge,
NoticeList,
},
setup() {
const ButtonGroup = Button.Group;
const TabPane = Tabs.TabPane;
const { prefixCls } = useDesign('header-notify');
const go = useGo();
const open = ref(false);
@ -129,23 +86,6 @@
console.log('showDrawer');
open.value = true;
}
return {
prefixCls,
count,
numberStyle: {},
open,
showDrawer,
notifierRef,
readNotifer,
messageRef,
clearMessage,
tasksRef,
handleShowMessages,
handleShowNotifications,
};
},
});
</script>
<style lang="less">
@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) {
if (notificationInfo.type === NotificationType.ServiceCallback) {
emitter.emit(NotifyEventEnum.NOTIFICATIONS_SERVICE_CALLBACK, notificationInfo);
return;
}
const { data } = notificationInfo;
let title = data.extraProperties.title;
let message = data.extraProperties.message;
@ -83,17 +87,10 @@ export function useNotifications() {
contentType: notificationInfo.contentType,
};
if (notifer && notificationInfo.type !== NotificationType.ServiceCallback) {
_notification(notifier, notificationInfo.severity);
}
if (notificationInfo.type === NotificationType.ServiceCallback) {
emitter.emit(NotifyEventEnum.NOTIFICATIONS_SERVICE_CALLBACK, notificationInfo);
} else {
notifer && _notification(notifier, notificationInfo.severity);
emitter.emit(NotifyEventEnum.NOTIFICATIONS_RECEVIED, notificationInfo);
notifierRef.value.list.push(notifier);
}
}
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')"
icon="ant-design:security-scan-outlined"
/>
<MenuItem
key="sessions"
:text="t('AbpIdentity.IdentitySessions')"
icon="carbon:prompt-session"
/>
<MenuDivider />
<MenuItem
v-if="getUseLockPage"
@ -42,6 +47,7 @@
</template>
</Dropdown>
<LockAction @register="register" />
<SessionModal @register="registerSessionModal" />
<SecurityLogsModal @register="registerSecurityLogsModal" />
</template>
<script lang="ts">
@ -67,7 +73,7 @@
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({
name: 'UserDropdown',
@ -77,6 +83,9 @@
MenuItem: createAsyncComponent(() => import('./DropMenuItem.vue')),
MenuDivider: Menu.Divider,
LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')),
SessionModal: createAsyncComponent(
() => import('/@/views/account/sessions/index.vue'),
),
SecurityLogsModal: createAsyncComponent(
() => import('/@/views/account/security-logs/index.vue'),
),
@ -107,6 +116,7 @@
});
const [register, { openModal }] = useModal();
const [registerSessionModal, { openModal: openSessionModal }] = useModal();
const [registerSecurityLogsModal, { openModal: openSecurityLogsModal }] = useModal();
function handleLock() {
@ -140,6 +150,9 @@
case 'center':
go('/account/center');
break;
case 'sessions':
openSessionModal(true, {});
break;
case 'security-logs':
openSecurityLogsModal(true, {});
break;
@ -154,6 +167,7 @@
getShowDoc,
register,
getUseLockPage,
registerSessionModal,
registerSecurityLogsModal,
};
},

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

@ -9,45 +9,23 @@
:can-fullscreen="false"
:show-ok-btn="false"
>
<Card style="height: 100%">
<div :style="getContentStyle" ref="contentWrapRef">
<ScrollContainer ref="contentScrollRef">
<template v-for="securityLog in securityLogs" :key="securityLog.id">
<CardGrid>
<Form
layout="horizontal"
:colon="false"
:model="securityLog"
:labelCol="{ span: 4 }"
:wrapperCol="{ span: 16 }"
>
<FormItem labelAlign="left" :label="L('ApplicationName')">
<span>{{ securityLog.applicationName }}</span>
</FormItem>
<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>
<Card hoverable style="height: 100%; margin-bottom: 15px;">
<Descriptions bordered size="small" :column="1">
<DescriptionItem :label="L('ApplicationName')">{{ securityLog.applicationName }}</DescriptionItem>
<DescriptionItem :label="L('Identity')">{{ securityLog.identity }}</DescriptionItem>
<DescriptionItem :label="L('Actions')">{{ securityLog.action }}</DescriptionItem>
<DescriptionItem :label="L('ClientId')">{{ securityLog.clientId }}</DescriptionItem>
<DescriptionItem :label="L('ClientIpAddress')">{{ securityLog.clientIpAddress }}</DescriptionItem>
<DescriptionItem :label="L('BrowserInfo')">{{ formatToDateTime(securityLog.browserInfo) }}</DescriptionItem>
<DescriptionItem :label="L('CreationTime')">{{ formatToDateTime(securityLog.creationTime) }}</DescriptionItem>
</Descriptions>
</Card>
</template>
</ScrollContainer>
</div>
</Card>
<template #footer>
<APagination
ref="paginationRef"
@ -63,7 +41,7 @@
<script lang="ts" setup>
import type { CSSProperties } 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 { ScrollContainer } from '/@/components/Container';
import { useLocalization } from '/@/hooks/abp/useLocalization';
@ -74,9 +52,8 @@
import { formatPagedRequest } from '/@/utils/http/abp/helper';
import { formatToDateTime } from '/@/utils/dateUtil';
const CardGrid = Card.Grid;
const FormItem = Form.Item;
const APagination = Pagination;
const DescriptionItem = Descriptions.Item;
const props = defineProps({
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),
onClick: showLockModal.bind(null, record.id),
},
{
auth: 'AbpIdentity.IdentitySessions',
label: L('IdentitySessions'),
onClick: handleShowSessionModal.bind(null, record),
},
{
auth: 'AbpIdentity.Users.Update',
label: L('UnLock'),
@ -90,6 +95,7 @@
</template>
</BasicTable>
<UserModal @register="registerModal" @change="reloadTable" />
<SessionModal @register="registerSessionModal" />
<PermissionModal @register="registerPermissionModal" />
<PasswordModal @register="registerPasswordModal" />
<ClaimModal
@ -129,11 +135,13 @@
updateClaim,
deleteClaim,
} from '/@/api/identity/users';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import UserModal from './UserModal.vue';
import PasswordModal from './PasswordModal.vue';
import LockModal from './LockModal.vue';
import MenuModal from '../../components/MenuModal.vue';
import ClaimModal from '../../components/ClaimModal.vue';
const SessionModal = createAsyncComponent(() => import('./SessionModal.vue'));
const emits = defineEmits(['change']);
@ -146,6 +154,7 @@
const { registerLockModal, showLockModal, handleUnLock } = useLock({ emit: emits });
const { registerPasswordModal, showPasswordModal } = usePassword(nullFormElRef);
const [registerClaimModal, { openModal: openClaimModal }] = useModal();
const [registerSessionModal, { openModal: openSessionModal }] = useModal();
const [registerMenuModal, { openModal: openMenuModal, closeModal: closeMenuModal }] = useModal();
const { registerModel: registerPermissionModal, showPermissionModal } = usePermissionModal();
@ -188,4 +197,8 @@
function handleShowClaims(record) {
openClaimModal(true, { id: record.id });
}
function handleShowSessionModal(record) {
openSessionModal(true, { userId: record.id });
}
</script>

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

@ -110,6 +110,7 @@ declare interface CurrentUser {
phoneNumber?: string;
phoneNumberVerified: boolean;
roles: string[];
sessionId?: string;
}
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
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
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
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
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
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
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
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
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
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}"
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}"
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
Global
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}.Release|Any CPU.ActiveCfg = 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
{46038910-8EDD-4822-8768-097B7D276FED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{46038910-8EDD-4822-8768-097B7D276FED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{46038910-8EDD-4822-8768-097B7D276FED}.Release|Any CPU.Build.0 = Release|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{332F2031-6B67-4199-8BA4-317679D2FFF8}.Release|Any CPU.Build.0 = Release|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306}.Release|Any CPU.Build.0 = Release|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF53669D-560C-4791-BE9A-28231C15FA4E}.Release|Any CPU.Build.0 = Release|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F8BB49E-92E5-4468-8656-BD4BC03FA505}.Release|Any CPU.Build.0 = Release|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5CAC42F1-58A4-4716-B8E5-E28042D1B612}.Release|Any CPU.Build.0 = Release|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A}.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
{CED33625-A034-475B-A4C0-A4E7D1BADD10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CED33625-A034-475B-A4C0-A4E7D1BADD10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CED33625-A034-475B-A4C0-A4E7D1BADD10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CED33625-A034-475B-A4C0-A4E7D1BADD10}.Release|Any CPU.Build.0 = Release|Any CPU
{E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E3BA2413-5755-4F61-9A7C-5D49AE9E7016}.Release|Any CPU.Build.0 = Release|Any CPU
{BF85DB7F-70C2-4804-AA57-FACE204981DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF85DB7F-70C2-4804-AA57-FACE204981DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF85DB7F-70C2-4804-AA57-FACE204981DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF85DB7F-70C2-4804-AA57-FACE204981DA}.Release|Any CPU.Build.0 = Release|Any CPU
{893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{893F7376-0913-43DC-AD3D-40AF5B8F9E3B}.Release|Any CPU.Build.0 = Release|Any CPU
{8826831D-8733-473A-B47B-A30C3732B13D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8826831D-8733-473A-B47B-A30C3732B13D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8826831D-8733-473A-B47B-A30C3732B13D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8826831D-8733-473A-B47B-A30C3732B13D}.Release|Any CPU.Build.0 = Release|Any CPU
{D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1484DD3-BB0A-45A4-BED5-FFA132DE2E72}.Release|Any CPU.Build.0 = Release|Any CPU
{54BBA043-317B-4A4F-B583-513D08BC25A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{54BBA043-317B-4A4F-B583-513D08BC25A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{54BBA043-317B-4A4F-B583-513D08BC25A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54BBA043-317B-4A4F-B583-513D08BC25A7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -2435,39 +2299,13 @@ Global
{ED3DF100-C5DB-4334-A847-118922B28D95} = {3C7A8246-DE82-4330-8697-24EF1B1C515D}
{15482834-9242-4D20-9736-9DA571A9A83A} = {ABD89F39-62D9-439E-8662-BE4F36BFA04F}
{8A255A72-50FC-460E-9897-FA53F455580B} = {9D1302BE-3886-49F8-B0CD-35D2AC1E5A37}
{46038910-8EDD-4822-8768-097B7D276FED} = {DD9BE9E7-F6BF-4869-BCD2-82F5072BDA21}
{332F2031-6B67-4199-8BA4-317679D2FFF8} = {77ED7922-BF30-4436-8A85-78F812583913}
{C8138D8C-BF2B-41CB-BEA2-3ACC5E70E306} = {77ED7922-BF30-4436-8A85-78F812583913}
{FF53669D-560C-4791-BE9A-28231C15FA4E} = {77ED7922-BF30-4436-8A85-78F812583913}
{2F8BB49E-92E5-4468-8656-BD4BC03FA505} = {77ED7922-BF30-4436-8A85-78F812583913}
{5CAC42F1-58A4-4716-B8E5-E28042D1B612} = {77ED7922-BF30-4436-8A85-78F812583913}
{7D235CB7-EC8E-418F-978A-D2E6EA5F9E9A} = {77ED7922-BF30-4436-8A85-78F812583913}
{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}
{CED33625-A034-475B-A4C0-A4E7D1BADD10} = {DD9BE9E7-F6BF-4869-BCD2-82F5072BDA21}
{E3BA2413-5755-4F61-9A7C-5D49AE9E7016} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
{BF85DB7F-70C2-4804-AA57-FACE204981DA} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
{893F7376-0913-43DC-AD3D-40AF5B8F9E3B} = {0439B173-F41E-4CE0-A44A-CCB70328F272}
{8826831D-8733-473A-B47B-A30C3732B13D} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
{D1484DD3-BB0A-45A4-BED5-FFA132DE2E72} = {83E698F6-F8CD-4604-AB80-01A203389501}
{54BBA043-317B-4A4F-B583-513D08BC25A7} = {52B5D4F7-237B-4E0A-A167-68442164F70A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
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
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
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
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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}.Release|Any CPU.ActiveCfg = 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
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -1600,6 +1654,15 @@ Global
{66A6E78D-E547-4DD7-9844-087FAB3D03C2} = {C22741F9-FC56-4AE3-B543-9F15C779D345}
{A99F5406-37DC-4677-9166-9BDE90C26CA6} = {D9C65C9D-8591-46DA-A3EE-419393E607AB}
{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
GlobalSection(ExtensibilityGlobals) = postSolution
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
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
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
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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}.Release|Any CPU.ActiveCfg = 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
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -454,6 +468,9 @@ Global
{0DFDAC71-BCB9-44CF-A44A-E8288E75246F} = {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}
{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
GlobalSection(ExtensibilityGlobals) = postSolution
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
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
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
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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}.Release|Any CPU.ActiveCfg = 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
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -518,6 +532,8 @@ Global
{4D055853-DE80-4145-BB2F-33EB6B379F5E} = {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}
{6ECF678D-6F3A-4084-8538-A86C1D67C703} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
{9FB5E943-7F6F-4281-9C00-E76284B4F1F3} = {9C73D4E6-4408-4717-B51C-63C20321D4DA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
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" />
<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 />
</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.Modularity;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
[DependsOn(
typeof(AbpAuditLoggingModule),
typeof(AbpElasticsearchModule),
@ -19,4 +19,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
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;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
public class AbpAuditLoggingElasticsearchOptions
{
public const string DefaultIndexPrefix = "auditlogging";
@ -14,4 +14,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
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.Json;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
public class AuditLogInfoToAuditLogConverter : IAuditLogInfoToAuditLogConverter, ITransientDependency
{
protected IGuidGenerator GuidGenerator { get; }
@ -112,4 +112,3 @@ namespace LINGYUN.Abp.AuditLogging
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.Timing;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
[Dependency(ReplaceServices = true)]
public class ElasticsearchAuditLogManager : IAuditLogManager, ITransientDependency
{
@ -61,7 +61,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
int? minExecutionDuration = null,
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
var client = _clientFactory.Create();
@ -108,7 +108,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
var client = _clientFactory.Create();
@ -190,7 +190,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
public async virtual Task<string> SaveAsync(
AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
if (!_auditingOptions.HideErrors)
{
@ -211,7 +211,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
protected async virtual Task<string> SaveLogAsync(
AuditLogInfo auditLogInfo,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
var client = _clientFactory.Create();
@ -370,4 +370,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
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.Timing;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
[Dependency(ReplaceServices = true)]
public class ElasticsearchSecurityLogManager : ISecurityLogManager, ITransientDependency
{
@ -47,7 +47,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
public async virtual Task SaveAsync(
SecurityLogInfo securityLogInfo,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
// TODO: 框架不把这玩意儿放在 ISecurityLogManager?
if (!_securityLogOptions.IsEnabled)
@ -110,7 +110,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
string clientIpAddress = null,
string correlationId = null,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
var client = _clientFactory.Create();
@ -156,7 +156,7 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
string clientId = null,
string clientIpAddress = null,
string correlationId = null,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
var client = _clientFactory.Create();
@ -269,4 +269,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
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 Volo.Abp.Auditing;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
public interface IAuditLogInfoToAuditLogConverter
{
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;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
public interface IIndexInitializer
{
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
{
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.Json;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
public class IndexInitializer : IIndexInitializer, ISingletonDependency
{
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.Tasks;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
public class IndexInitializerService : BackgroundService
{
private readonly IIndexInitializer _indexInitializer;
@ -18,4 +18,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
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.MultiTenancy;
namespace LINGYUN.Abp.AuditLogging.Elasticsearch
{
namespace LINGYUN.Abp.AuditLogging.Elasticsearch;
public class IndexNameNormalizer : IIndexNameNormalizer, ISingletonDependency
{
private readonly ICurrentTenant _currentTenant;
@ -29,4 +29,3 @@ namespace LINGYUN.Abp.AuditLogging.Elasticsearch
: $"{_options.IndexPrefix}-{index}";
}
}
}

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

@ -5,6 +5,11 @@
<PropertyGroup>
<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 />
</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.Modularity;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
{
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
[DependsOn(
typeof(Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule),
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;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
{
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
public class AbpAuditingMapperProfile : Profile
{
public AbpAuditingMapperProfile()
@ -18,4 +18,3 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
.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.Uow;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
{
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
[Dependency(ReplaceServices = true)]
public class AuditLogManager : IAuditLogManager, ITransientDependency
{
@ -57,13 +57,14 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
int? minExecutionDuration = null,
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
return await AuditLogRepository.GetCountAsync(
startTime,
endTime,
httpMethod,
url,
clientId,
userId,
userName,
applicationName,
@ -95,7 +96,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
var auditLogs = await AuditLogRepository.GetListAsync(
sorting,
@ -105,6 +106,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
endTime,
httpMethod,
url,
clientId,
userId,
userName,
applicationName,
@ -141,7 +143,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
public async virtual Task<string> SaveAsync(
AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
if (!Options.HideErrors)
{
@ -162,7 +164,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
protected async virtual Task<string> SaveLogAsync(
AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
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.Uow;
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
{
namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
[Dependency(ReplaceServices = true)]
public class SecurityLogManager : ISecurityLogManager, ITransientDependency
{
@ -42,7 +42,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
public async virtual Task SaveAsync(
SecurityLogInfo securityLogInfo,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
if (!SecurityLogOptions.IsEnabled)
{
@ -93,7 +93,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
string clientIpAddress = null,
string correlationId = null,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
var securityLogs = await IdentitySecurityLogRepository.GetListAsync(
sorting,
@ -126,7 +126,7 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
string clientId = null,
string clientIpAddress = null,
string correlationId = null,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
return await IdentitySecurityLogRepository.GetCountAsync(
startTime,
@ -141,4 +141,3 @@ namespace LINGYUN.Abp.AuditLogging.EntityFrameworkCore
cancellationToken);
}
}
}

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

@ -4,7 +4,14 @@
<Import Project="..\..\..\..\common.props" />
<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 />
</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.Modularity;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[DependsOn(
typeof(AbpAuditingModule),
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.Collections.Generic;
using Volo.Abp.Auditing;
using Volo.Abp.Data;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
public class AuditLog : IHasExtraProperties
{
public Guid Id { get; set; }
public string ApplicationName { get; set; }
public string? ApplicationName { get; set; }
public Guid? UserId { get; set; }
public string UserName { get; set; }
public string? UserName { get; set; }
public Guid? TenantId { get; set; }
public string TenantName { get; set; }
public string? TenantName { get; set; }
public Guid? ImpersonatorUserId { get; set; }
public string ImpersonatorUserName { get; set; }
public string? ImpersonatorUserName { get; set; }
public Guid? ImpersonatorTenantId { get; set; }
public string ImpersonatorTenantName { get; set; }
public string? ImpersonatorTenantName { get; set; }
public DateTime ExecutionTime { 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; }
@ -66,30 +65,30 @@ namespace LINGYUN.Abp.AuditLogging
public AuditLog(
Guid id,
string applicationName,
string? applicationName,
Guid? tenantId,
string tenantName,
string? tenantName,
Guid? userId,
string userName,
string? userName,
DateTime executionTime,
int executionDuration,
string clientIpAddress,
string clientName,
string clientId,
string correlationId,
string browserInfo,
string httpMethod,
string url,
string? clientIpAddress,
string? clientName,
string? clientId,
string? correlationId,
string? browserInfo,
string? httpMethod,
string? url,
int? httpStatusCode,
Guid? impersonatorUserId,
string impersonatorUserName,
string? impersonatorUserName,
Guid? impersonatorTenantId,
string impersonatorTenantName,
string? impersonatorTenantName,
ExtraPropertyDictionary extraPropertyDictionary,
List<EntityChange> entityChanges,
List<AuditLogAction> actions,
string exceptions,
string comments)
string? exceptions,
string? comments)
{
Id = id;
ApplicationName = applicationName;
@ -119,4 +118,3 @@ namespace LINGYUN.Abp.AuditLogging
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.Data;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[DisableAuditing]
public class AuditLogAction : IHasExtraProperties
{
@ -45,4 +45,3 @@ namespace LINGYUN.Abp.AuditLogging
// 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.DependencyInjection;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[Dependency(ReplaceServices = true)]
public class AuditingStore : IAuditingStore, ITransientDependency
{
@ -20,4 +20,3 @@ namespace LINGYUN.Abp.AuditLogging
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.DependencyInjection;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[Dependency(TryRegister = true)]
public class DefaultAuditLogManager : IAuditLogManager, ISingletonDependency
{
@ -23,44 +23,44 @@ namespace LINGYUN.Abp.AuditLogging
public virtual Task<long> GetCountAsync(
DateTime? startTime = null,
DateTime? endTime = null,
string httpMethod = null,
string url = null,
string? httpMethod = null,
string? url = null,
Guid? userId = null,
string userName = null,
string applicationName = null,
string correlationId = null,
string clientId = null,
string clientIpAddress = null,
string? userName = null,
string? applicationName = null,
string? correlationId = null,
string? clientId = null,
string? clientIpAddress = null,
int? maxExecutionDuration = null,
int? minExecutionDuration = null,
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
Logger.LogDebug("No audit log manager is available!");
return Task.FromResult(0L);
}
public virtual Task<List<AuditLog>> GetListAsync(
string sorting = null,
string? sorting = null,
int maxResultCount = 50,
int skipCount = 0,
DateTime? startTime = null,
DateTime? endTime = null,
string httpMethod = null,
string url = null,
string? httpMethod = null,
string? url = null,
Guid? userId = null,
string userName = null,
string applicationName = null,
string correlationId = null,
string clientId = null,
string clientIpAddress = null,
string? userName = null,
string? applicationName = null,
string? correlationId = null,
string? clientId = null,
string? clientIpAddress = null,
int? maxExecutionDuration = null,
int? minExecutionDuration = null,
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
Logger.LogDebug("No audit log manager is available!");
return Task.FromResult(new List<AuditLog>());
@ -83,8 +83,8 @@ namespace LINGYUN.Abp.AuditLogging
{
Logger.LogDebug("No audit log manager is available!");
AuditLog auditLog = null;
return Task.FromResult(auditLog);
AuditLog? auditLog = null;
return Task.FromResult(auditLog!);
}
public virtual Task DeleteAsync(Guid id, CancellationToken cancellationToken = default)
@ -93,4 +93,3 @@ namespace LINGYUN.Abp.AuditLogging
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.DependencyInjection;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[Dependency(TryRegister = true)]
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);
}
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);
}
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>());
}
public Task<EntityChangeWithUsername> GetWithUsernameAsync(Guid entityChangeId, CancellationToken cancellationToken = default)
{
EntityChangeWithUsername entityChange = null;
return Task.FromResult(entityChange);
EntityChangeWithUsername? entityChange = null;
return Task.FromResult(entityChange!);
}
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>());
}
}
}

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.SecurityLog;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[Dependency(TryRegister = true)]
public class DefaultSecurityLogManager : ISecurityLogManager, ISingletonDependency
{
@ -22,36 +22,36 @@ namespace LINGYUN.Abp.AuditLogging
public Task<long> GetCountAsync(
DateTime? startTime = null,
DateTime? endTime = null,
string applicationName = null,
string identity = null,
string action = null,
string? applicationName = null,
string? identity = null,
string? action = null,
Guid? userId = null,
string userName = null,
string clientId = null,
string clientIpAddress = null,
string correlationId = null,
CancellationToken cancellationToken = default(CancellationToken))
string? userName = null,
string? clientId = null,
string? clientIpAddress = null,
string? correlationId = null,
CancellationToken cancellationToken = default)
{
Logger.LogDebug("No security log manager is available!");
return Task.FromResult(0L);
}
public Task<List<SecurityLog>> GetListAsync(
string sorting = null,
string? sorting = null,
int maxResultCount = 50,
int skipCount = 0,
DateTime? startTime = null,
DateTime? endTime = null,
string applicationName = null,
string identity = null,
string action = null,
string? applicationName = null,
string? identity = null,
string? action = null,
Guid? userId = null,
string userName = null,
string clientId = null,
string clientIpAddress = null,
string correlationId = null,
string? userName = null,
string? clientId = null,
string? clientIpAddress = null,
string? correlationId = null,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken))
CancellationToken cancellationToken = default)
{
Logger.LogDebug("No security log manager is available!");
return Task.FromResult(new List<SecurityLog>());
@ -59,7 +59,7 @@ namespace LINGYUN.Abp.AuditLogging
public Task SaveAsync(
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.LogInformation(securityLogInfo.ToString());
@ -74,8 +74,8 @@ namespace LINGYUN.Abp.AuditLogging
{
Logger.LogDebug("No security log manager is available!");
SecurityLog securityLog = null;
return Task.FromResult(securityLog);
SecurityLog? securityLog = null;
return Task.FromResult(securityLog!);
}
public virtual Task DeleteAsync(Guid id, CancellationToken cancellationToken = default)
@ -84,4 +84,3 @@ namespace LINGYUN.Abp.AuditLogging
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.Guids;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[DisableAuditing]
public class EntityChange : IHasExtraProperties
{
@ -22,9 +22,9 @@ namespace LINGYUN.Abp.AuditLogging
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; }
@ -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 EntityChange EntityChange { 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.Guids;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[DisableAuditing]
public class EntityPropertyChange
{
@ -13,9 +13,9 @@ namespace LINGYUN.Abp.AuditLogging
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; }
@ -40,4 +40,3 @@ namespace LINGYUN.Abp.AuditLogging
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 Volo.Abp.Auditing;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
public interface IAuditLogManager
{
Task<AuditLog> GetAsync(
Guid id,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task DeleteAsync(
Guid id,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task<string> SaveAsync(
AuditLogInfo auditInfo,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task<long> GetCountAsync(
DateTime? startTime = null,
DateTime? endTime = null,
string httpMethod = null,
string url = null,
string? httpMethod = null,
string? url = null,
Guid? userId = null,
string userName = null,
string applicationName = null,
string correlationId = null,
string clientId = null,
string clientIpAddress = null,
string? userName = null,
string? applicationName = null,
string? correlationId = null,
string? clientId = null,
string? clientIpAddress = null,
int? maxExecutionDuration = null,
int? minExecutionDuration = null,
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task<List<AuditLog>> GetListAsync(
string sorting = null,
string? sorting = null,
int maxResultCount = 50,
int skipCount = 0,
DateTime? startTime = null,
DateTime? endTime = null,
string httpMethod = null,
string url = null,
string? httpMethod = null,
string? url = null,
Guid? userId = null,
string userName = null,
string applicationName = null,
string correlationId = null,
string clientId = null,
string clientIpAddress = null,
string? userName = null,
string? applicationName = null,
string? correlationId = null,
string? clientId = null,
string? clientIpAddress = null,
int? maxExecutionDuration = null,
int? minExecutionDuration = null,
bool? hasException = null,
HttpStatusCode? httpStatusCode = null,
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 Volo.Abp.Auditing;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
public interface IEntityChangeStore
{
Task<EntityChange> GetAsync(
Task<EntityChange?> GetAsync(
Guid entityChangeId,
CancellationToken cancellationToken = default);
@ -17,20 +17,20 @@ namespace LINGYUN.Abp.AuditLogging
DateTime? startTime = null,
DateTime? endTime = null,
EntityChangeType? changeType = null,
string entityId = null,
string entityTypeFullName = null,
string? entityId = null,
string? entityTypeFullName = null,
CancellationToken cancellationToken = default);
Task<List<EntityChange>> GetListAsync(
string sorting = null,
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,
string? entityId = null,
string? entityTypeFullName = null,
bool includeDetails = false,
CancellationToken cancellationToken = default);
@ -43,4 +43,3 @@ namespace LINGYUN.Abp.AuditLogging
string entityTypeFullName,
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 Volo.Abp.SecurityLog;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
public interface ISecurityLogManager
{
Task<SecurityLog> GetAsync(
Guid id,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task DeleteAsync(
Guid id,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task SaveAsync(
SecurityLogInfo securityLogInfo,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task<List<SecurityLog>> GetListAsync(
string sorting = null,
string? sorting = null,
int maxResultCount = 50,
int skipCount = 0,
DateTime? startTime = null,
DateTime? endTime = null,
string applicationName = null,
string identity = null,
string action = null,
string? applicationName = null,
string? identity = null,
string? action = null,
Guid? userId = null,
string userName = null,
string clientId = null,
string clientIpAddress = null,
string correlationId = null,
string? userName = null,
string? clientId = null,
string? clientIpAddress = null,
string? correlationId = null,
bool includeDetails = false,
CancellationToken cancellationToken = default(CancellationToken));
CancellationToken cancellationToken = default);
Task<long> GetCountAsync(
DateTime? startTime = null,
DateTime? endTime = null,
string applicationName = null,
string identity = null,
string action = null,
string? applicationName = null,
string? identity = null,
string? action = null,
Guid? userId = null,
string userName = null,
string clientId = null,
string clientIpAddress = null,
string correlationId = null,
CancellationToken cancellationToken = default(CancellationToken));
string? userName = null,
string? clientId = null,
string? clientIpAddress = null,
string? correlationId = null,
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.SecurityLog;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
public class SecurityLog : IHasExtraProperties
{
public Guid Id { 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 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; }
@ -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.SecurityLog;
namespace LINGYUN.Abp.AuditLogging
{
namespace LINGYUN.Abp.AuditLogging;
[Dependency(ReplaceServices = true)]
public class SecurityLogStore : ISecurityLogStore, ITransientDependency
{
@ -20,4 +20,3 @@ namespace LINGYUN.Abp.AuditLogging
await _manager.SaveAsync(securityLogInfo);
}
}
}

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

@ -5,6 +5,11 @@
<PropertyGroup>
<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 />
</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>
/// QQ互联身份类型,可以像 <see cref="Volo.Abp.Security.Claims.AbpClaimTypes"/> 自行配置
/// <br />
@ -28,4 +28,3 @@
/// </remarks>
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.Threading.Tasks;
namespace Microsoft.AspNetCore.Authentication.QQ
{
namespace Microsoft.AspNetCore.Authentication.QQ;
/// <summary>
/// QQ互联实现
/// </summary>
@ -173,4 +173,3 @@ namespace Microsoft.AspNetCore.Authentication.QQ
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 System.Security.Claims;
namespace Microsoft.AspNetCore.Authentication.QQ
{
namespace Microsoft.AspNetCore.Authentication.QQ;
public class QQConnectOAuthOptions : OAuthOptions
{
/// <summary>
@ -43,4 +43,3 @@ namespace Microsoft.AspNetCore.Authentication.QQ
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 System;
namespace Microsoft.AspNetCore.Authentication
{
namespace Microsoft.AspNetCore.Authentication;
public static class QQAuthenticationExtensions
{
/// <summary>
@ -60,4 +60,3 @@ namespace Microsoft.AspNetCore.Authentication
configureOptions);
}
}
}

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

@ -1,7 +1,7 @@
using System.Security.Cryptography;
namespace System
{
namespace System;
internal static class BytesExtensions
{
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.Text;
namespace System
{
namespace System;
internal static class StringExtensions
{
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;
namespace System.Text.Json
{
namespace System.Text.Json;
internal static class JsonElementExtensions
{
public static IEnumerable<string> GetRootStrings(this JsonDocument json, string key)
@ -60,4 +60,3 @@ namespace System.Text.Json
return defaultValue;
}
}
}

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

@ -5,6 +5,11 @@
<PropertyGroup>
<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 />
</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.Threading.Tasks;
namespace Microsoft.AspNetCore.Authentication.WeChat.Official
{
namespace Microsoft.AspNetCore.Authentication.WeChat.Official;
/// <summary>
/// 网页授权只有公众平台的实现
/// </summary>
@ -311,4 +311,3 @@ namespace Microsoft.AspNetCore.Authentication.WeChat.Official
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.Text.Json;
namespace Microsoft.AspNetCore.Authentication.WeChat.Official
{
namespace Microsoft.AspNetCore.Authentication.WeChat.Official;
public class WeChatOfficialOAuthOptions : OAuthOptions
{
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 string State { get; set; }
@ -15,4 +15,3 @@
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 System;
namespace Microsoft.AspNetCore.Authentication
{
namespace Microsoft.AspNetCore.Authentication;
public static class WeChatAuthenticationExtensions
{
/// <summary>
@ -62,4 +62,3 @@ namespace Microsoft.AspNetCore.Authentication
configureOptions);
}
}
}

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

@ -4,7 +4,14 @@
<Import Project="..\..\..\..\common.props" />
<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 />
</PropertyGroup>

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

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

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

@ -5,6 +5,11 @@
<PropertyGroup>
<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 />
</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.VirtualFileSystem;
namespace LINGYUN.Abp.Aliyun.SettingManagement
{
namespace LINGYUN.Abp.Aliyun.SettingManagement;
[DependsOn(
typeof(AbpAliyunModule),
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 ValueType = LINGYUN.Abp.SettingManagement.ValueType;
namespace LINGYUN.Abp.Aliyun.SettingManagement
{
namespace LINGYUN.Abp.Aliyun.SettingManagement;
public class AliyunSettingAppService : ApplicationService, IAliyunSettingAppService
{
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.AspNetCore.Mvc;
namespace LINGYUN.Abp.Aliyun.SettingManagement
{
namespace LINGYUN.Abp.Aliyun.SettingManagement;
[RemoteService(Name = AbpSettingManagementRemoteServiceConsts.RemoteServiceName)]
[Area("settingManagement")]
[Route("api/setting-management/aliyun")]
@ -33,4 +33,3 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
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.Localization;
namespace LINGYUN.Abp.Aliyun.SettingManagement
{
namespace LINGYUN.Abp.Aliyun.SettingManagement;
public class AliyunSettingPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
@ -21,4 +21,3 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
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 const string GroupName = "Abp.Aliyun";
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;
namespace LINGYUN.Abp.Aliyun.SettingManagement
{
namespace LINGYUN.Abp.Aliyun.SettingManagement;
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" />
<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 />
<Description>阿里云SDK基础框架</Description>
</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.Logging;
namespace LINGYUN.Abp.Aliyun
{
namespace LINGYUN.Abp.Aliyun;
public class AbpAliyunException : AbpException, IHasErrorCode, IHasLogLevel
{
public LogLevel LogLevel { get; set; }
@ -18,4 +18,3 @@ namespace LINGYUN.Abp.Aliyun
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.VirtualFileSystem;
namespace LINGYUN.Abp.Aliyun
{
namespace LINGYUN.Abp.Aliyun;
[DependsOn(
typeof(AbpCachingModule),
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.Settings;
namespace LINGYUN.Abp.Aliyun
{
namespace LINGYUN.Abp.Aliyun;
[RequiresFeature(AliyunFeatureNames.Enable)]
public class AcsClientFactory : AliyunClientFactory<IAcsClient>, IAcsClientFactory, ITransientDependency
{
@ -32,4 +32,3 @@ namespace LINGYUN.Abp.Aliyun
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;
namespace LINGYUN.Abp.Aliyun
{
namespace LINGYUN.Abp.Aliyun;
[Serializable]
public class AliyunBasicSessionCredentialsCacheItem
{
@ -28,4 +28,3 @@ namespace LINGYUN.Abp.Aliyun
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.Settings;
namespace LINGYUN.Abp.Aliyun
{
namespace LINGYUN.Abp.Aliyun;
/// <summary>
/// 阿里云通用客户端构建工厂
/// </summary>
@ -177,4 +177,3 @@ namespace LINGYUN.Abp.Aliyun
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 System.Threading.Tasks;
namespace LINGYUN.Abp.Aliyun
{
namespace LINGYUN.Abp.Aliyun;
public interface IAcsClientFactory
{
/// <summary>
@ -12,4 +12,3 @@ namespace LINGYUN.Abp.Aliyun
/// <returns></returns>
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;
namespace LINGYUN.Abp.Aliyun.Localization
{
namespace LINGYUN.Abp.Aliyun.Localization;
[LocalizationResourceName("Aliyun")]
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 const string Prefix = "Abp.Aliyun";
@ -80,4 +80,3 @@
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.Settings;
namespace LINGYUN.Abp.Aliyun.Settings
{
namespace LINGYUN.Abp.Aliyun.Settings;
public class AliyunSettingProvider : SettingDefinitionProvider
{
public override void Define(ISettingDefinitionContext context)
@ -209,4 +209,3 @@ namespace LINGYUN.Abp.Aliyun.Settings
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" />
<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 />
<Description>腾讯云Oss对象存储Abp集成</Description>
</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.MultiTenancy;
namespace LINGYUN.Abp.BlobStoring.Tencent
{
namespace LINGYUN.Abp.BlobStoring.Tencent;
public class DefaultTencentBlobNameCalculator : ITencentBlobNameCalculator, ITransientDependency
{
protected ICurrentTenant CurrentTenant { get; }
@ -21,4 +21,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
: $"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;
namespace LINGYUN.Abp.BlobStoring.Tencent
{
namespace LINGYUN.Abp.BlobStoring.Tencent;
public interface ITencentBlobNameCalculator
{
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 Volo.Abp.BlobStoring;
namespace LINGYUN.Abp.BlobStoring.Tencent
{
namespace LINGYUN.Abp.BlobStoring.Tencent;
public static class TencentBlobContainerConfigurationExtensions
{
public static TencentBlobProviderConfiguration GetTencentConfiguration(
@ -22,4 +22,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
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.DependencyInjection;
namespace LINGYUN.Abp.BlobStoring.Tencent
{
namespace LINGYUN.Abp.BlobStoring.Tencent;
public class TencentBlobNamingNormalizer : IBlobNamingNormalizer, ITransientDependency
{
/// <summary>
@ -58,4 +58,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
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.BlobStoring;
namespace LINGYUN.Abp.BlobStoring.Tencent
{
namespace LINGYUN.Abp.BlobStoring.Tencent;
public class TencentBlobProviderConfiguration
{
/// <summary>
@ -60,4 +60,3 @@ namespace LINGYUN.Abp.BlobStoring.Tencent
_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
{
/// <summary>
@ -23,4 +23,3 @@
/// </summary>
public const string CreateBucketReferer = "Tencent:OSS:CreateBucketReferer";
}
}

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

Loading…
Cancel
Save