实例介绍
IdentityBase是一个全面的身份和访问控制解决方案,它基于IdentityServer开发,为Web、移动应用和物联网提供了一个通用的身份平台。它支持单点登录与登出、作为服务的认证、APIs的访问控制、联合网关以及主题和本地化支持等功能。
主要特点:
- 支持多种应用类型的单点登录/登出
- 集中化的登录逻辑和工作流程
- 为各类客户端(如服务器到服务器、Web应用、SPA和原生/移动应用)颁发API访问令牌
- 支持外部身份提供者,如Azure Active Directory、Google、Facebook等
- 支持自定义主题,可以更改默认的Bootstrap样式或通过编写自己的Razor视图创建全新的UI
- UI、电子邮件和短信模板的本地化支持
- HTTP API支持直接从您的依赖方应用管理用户邀请以及更改用户电子邮件和密码
- 模块化架构允许添加自定义插件或替换IdentityBase的默认部分
数据库支持:
- Microsoft SQL Server, LocalDB
- PostgreSQL
- MySQL
- MariaDB
- InMemory(仅推荐用于测试)
【实例截图】
【核心代码】
文件清单
└── IdentityBase-16ac21238e326434fe1d2939014fa6200c30928f
├── build
│ ├── linux-x64
│ │ ├── config
│ │ │ ├── config.json
│ │ │ ├── data_clients.json
│ │ │ ├── data_resources_api.json
│ │ │ ├── data_resources_identity.json
│ │ │ ├── data_users.json
│ │ │ └── idsvr3test.pfx
│ │ └── run.sh
│ └── win7-x64
│ ├── config
│ │ ├── config.json
│ │ ├── data_clients.json
│ │ ├── data_resources_api.json
│ │ ├── data_resources_identity.json
│ │ ├── data_users.json
│ │ └── idsvr3test.pfx
│ ├── README.md
│ ├── run.bat
│ └── web.config
├── build-docker.bat
├── build.sh
├── build-win7x64.bat
├── cleanup.sh
├── CONTRIBUTING.md
├── Dockerfile
├── docs
│ ├── getting-started.md
│ └── icon.png
├── examples
│ ├── AspNetCoreApi
│ │ ├── ApplicationOptions.cs
│ │ ├── appsettings.json
│ │ ├── AspNetCoreApi.csproj
│ │ ├── build.sh
│ │ ├── Controllers
│ │ │ ├── IdentityController.cs
│ │ │ └── IndexController.cs
│ │ ├── Dockerfile
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ └── Startup.cs
│ ├── AspNetCoreWeb
│ │ ├── Actions
│ │ │ ├── Home
│ │ │ │ ├── HomeController.cs
│ │ │ │ └── Views
│ │ │ │ ├── Index.cshtml
│ │ │ │ ├── Json.cshtml
│ │ │ │ └── Secure.cshtml
│ │ │ ├── Invite
│ │ │ │ ├── InviteController.cs
│ │ │ │ ├── InviteInputModel.cs
│ │ │ │ ├── InviteViewModel.cs
│ │ │ │ └── Views
│ │ │ │ ├── Invite.cshtml
│ │ │ │ └── Invited.cshtml
│ │ │ ├── Shared
│ │ │ │ ├── Error.cshtml
│ │ │ │ ├── _Layout.cshtml
│ │ │ │ └── _SelectLanguagePartial.cshtml
│ │ │ ├── _ViewImports.cshtml
│ │ │ └── _ViewStart.cshtml
│ │ ├── ApplicationOptions.cs
│ │ ├── appsettings.json
│ │ ├── AspNetCoreWeb.csproj
│ │ ├── build.sh
│ │ ├── bundleconfig.json
│ │ ├── Dockerfile
│ │ ├── HttpClientExtensions.cs
│ │ ├── LocationExpander.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Resources
│ │ │ ├── SharedResources.cs
│ │ │ ├── SharedResources.de-DE.resx
│ │ │ └── SharedResources.en-US.resx
│ │ ├── Startup.cs
│ │ └── wwwroot
│ │ ├── css
│ │ │ └── site.css
│ │ ├── favicon.ico
│ │ ├── images
│ │ │ ├── banner1.svg
│ │ │ ├── banner2.svg
│ │ │ ├── banner3.svg
│ │ │ └── banner4.svg
│ │ └── js
│ │ └── site.js
│ ├── Docker
│ │ ├── docker-compose.yml
│ │ ├── identitybase
│ │ │ └── config
│ │ │ ├── config.json
│ │ │ ├── data_clients.json
│ │ │ ├── data_resources_api.json
│ │ │ ├── data_resources_identity.json
│ │ │ ├── data_users.json
│ │ │ └── idsvr3test.pfx
│ │ ├── nginx
│ │ │ └── config
│ │ │ ├── fastcgi.conf
│ │ │ ├── fastcgi_params
│ │ │ ├── koi-utf
│ │ │ ├── koi-win
│ │ │ ├── mime.types
│ │ │ ├── nginx.conf
│ │ │ ├── proxy.conf
│ │ │ ├── scgi_params
│ │ │ └── win-utf
│ │ └── README.md
│ ├── DockerDev
│ │ ├── postgres.yml
│ │ └── README.md
│ └── NodeJsApi
│ ├── config
│ │ └── default.json
│ ├── idsvr3test.pem
│ ├── NodeJsApi.njsproj
│ ├── package.json
│ ├── README.md
│ ├── server.js
│ └── src
│ ├── auth.js
│ ├── config.js
│ ├── elastic.js
│ ├── index.js
│ └── search.js
├── IdentityBase.sln
├── LICENSE.md
├── NuGet.Config
├── README.md
├── src
│ ├── IdentityBase.EntityFramework
│ │ ├── Configuration
│ │ │ ├── EntityFrameworkOptions.cs
│ │ │ └── TableConfiguration.cs
│ │ ├── DbContexts
│ │ │ ├── ConfigurationDbContext.cs
│ │ │ ├── MigrationDbContext.cs
│ │ │ ├── PersistedGrantDbContext.cs
│ │ │ └── UserAccountDbContext.cs
│ │ ├── Entities
│ │ │ ├── ApiResourceClaim.cs
│ │ │ ├── ApiResource.cs
│ │ │ ├── ApiScopeClaim.cs
│ │ │ ├── ApiScope.cs
│ │ │ ├── ApiSecret.cs
│ │ │ ├── ClientClaim.cs
│ │ │ ├── ClientCorsOrigin.cs
│ │ │ ├── Client.cs
│ │ │ ├── ClientGrantType.cs
│ │ │ ├── ClientIdPRestriction.cs
│ │ │ ├── ClientPostLogoutRedirectUri.cs
│ │ │ ├── ClientProperty.cs
│ │ │ ├── ClientRedirectUri.cs
│ │ │ ├── ClientScope.cs
│ │ │ ├── ClientSecret.cs
│ │ │ ├── ExternalAccount.cs
│ │ │ ├── IdentityClaim.cs
│ │ │ ├── IdentityResource.cs
│ │ │ ├── PersistedGrant.cs
│ │ │ ├── Secret.cs
│ │ │ ├── UserAccountClaim.cs
│ │ │ ├── UserAccount.cs
│ │ │ └── UserClaim.cs
│ │ ├── Extensions
│ │ │ ├── IApplicationBuilderExtensions.cs
│ │ │ ├── IServiceCollectionExtensions.cs
│ │ │ └── ModelBuilderExtensions.cs
│ │ ├── IdentityBase.EntityFramework.csproj
│ │ ├── Interfaces
│ │ │ ├── IConfigurationDbContext.cs
│ │ │ ├── IPersistedGrantDbContext.cs
│ │ │ └── IUserAccountDbContext.cs
│ │ ├── Mappers
│ │ │ ├── ApiResourceMapperProfile.cs
│ │ │ ├── ApiResourceMappers.cs
│ │ │ ├── ClientMapperProfile.cs
│ │ │ ├── ClientMappers.cs
│ │ │ ├── IdentityResourceMapperProfile.cs
│ │ │ ├── IdentityResourceMappers.cs
│ │ │ ├── PersistedGrantMapperProfile.cs
│ │ │ ├── PersistedGrantMappers.cs
│ │ │ ├── UserAccountMappers.cs
│ │ │ └── UserAccountProfile.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ ├── Services
│ │ │ ├── CorsPolicyService.cs
│ │ │ ├── TokenCleanupHostedService.cs
│ │ │ └── TokenCleanupService.cs
│ │ └── Stores
│ │ ├── ClientStore.cs
│ │ ├── PersistedGrantStore.cs
│ │ ├── ResourceStore.cs
│ │ └── UserAccountStore.cs
│ ├── IdentityBase.Shared
│ │ ├── Actions
│ │ │ ├── AccountChangePassword
│ │ │ │ ├── AccountChangePasswordController.cs
│ │ │ │ ├── ChangePasswordInputModel.cs
│ │ │ │ └── ChangePasswordViewModel.cs
│ │ │ ├── AccountExternalLogins
│ │ │ │ ├── AccountExternalLoginsController.cs
│ │ │ │ ├── ExternalLoginsViewModel.cs
│ │ │ │ └── RemoveLoginInputModel.cs
│ │ │ ├── AccountProfile
│ │ │ │ ├── AccountProfileController.cs
│ │ │ │ ├── ChangeEmailConfirmViewModel.cs
│ │ │ │ ├── ProfileInputModel.cs
│ │ │ │ └── ProfileIViewModel.cs
│ │ │ ├── AccountTwoFactorAuth
│ │ │ │ └── AccountTwoFactorAuthController.cs
│ │ │ ├── Consent
│ │ │ │ ├── ConsentController.cs
│ │ │ │ ├── ConsentInputModel.cs
│ │ │ │ └── ConsentViewModel.cs
│ │ │ ├── Error
│ │ │ │ ├── ErrorController.cs
│ │ │ │ └── ErrorViewModel.cs
│ │ │ ├── External
│ │ │ │ ├── ErrorViewModel.cs
│ │ │ │ ├── ExternalController.cs
│ │ │ │ ├── ExternalProvider.cs
│ │ │ │ ├── IExternalProvidersViewModel.cs
│ │ │ │ └── SuccessViewModel.cs
│ │ │ ├── Login
│ │ │ │ ├── LoginController.cs
│ │ │ │ ├── LoginInputModel.cs
│ │ │ │ └── LoginViewModel.cs
│ │ │ ├── Logout
│ │ │ │ ├── LoggedOutViewModel.cs
│ │ │ │ ├── LogoutController.cs
│ │ │ │ ├── LogoutInputModel.cs
│ │ │ │ └── LogoutViewModel.cs
│ │ │ ├── Recover
│ │ │ │ ├── ConfirmInputModel.cs
│ │ │ │ ├── ConfirmViewModel.cs
│ │ │ │ ├── RecoverController.cs
│ │ │ │ ├── RecoverInputModel.cs
│ │ │ │ ├── RecoverViewModel.cs
│ │ │ │ ├── SuccessInputModel.cs
│ │ │ │ └── SuccessViewModel.cs
│ │ │ ├── RedirectViewModel.cs
│ │ │ ├── Register
│ │ │ │ ├── ConfirmInputModel.cs
│ │ │ │ ├── ConfirmViewModel.cs
│ │ │ │ ├── RegisterController.cs
│ │ │ │ ├── RegisterInputModel.cs
│ │ │ │ ├── RegisterViewModel.cs
│ │ │ │ ├── SuccessInputModel.cs
│ │ │ │ └── SuccessViewModel.cs
│ │ │ └── ScopeViewModel.cs
│ │ ├── Configuration
│ │ │ ├── ApplicationOptions.cs
│ │ │ ├── ExampleData.cs
│ │ │ └── ExampleDataWriter.cs
│ │ ├── Crypto
│ │ │ ├── DefaultCrypto.cs
│ │ │ └── ICryptoService.cs
│ │ ├── Events
│ │ │ ├── EventCategories.cs
│ │ │ ├── EventIds.cs
│ │ │ ├── UserAccountCreatedSuccessEvent.cs
│ │ │ ├── UserAccountInvitedSuccessEvent.cs
│ │ │ └── UserAccountLoginSuccessEvent.cs
│ │ ├── Extensions
│ │ │ ├── ClientExtensions.cs
│ │ │ ├── ControllerExtensions.cs
│ │ │ ├── HttpContextExtensions.cs
│ │ │ ├── IServiceCollectionExtensions.cs
│ │ │ └── UserAccountExtensions.cs
│ │ ├── Factories
│ │ │ ├── DefaultEmailServiceOptionsFactory.cs
│ │ │ └── IdentityBaseContextFactory.cs
│ │ ├── Forms
│ │ │ ├── BindInputModelContext.cs
│ │ │ ├── BindInputModelResult.cs
│ │ │ ├── CreateViewModelContext.cs
│ │ │ ├── CreateViewModelResult.cs
│ │ │ ├── FormActionInterfaces.cs
│ │ │ ├── FormElement.cs
│ │ │ ├── HandleInputModelContext.cs
│ │ │ ├── IBindInputModelActionControllerExtensions.cs
│ │ │ ├── IBindInputModelAction.cs
│ │ │ ├── ICreateViewModelAction.cs
│ │ │ └── IHandleInputModelAction.cs
│ │ ├── FromAssemblyFeatureProvider.cs
│ │ ├── IdentityBaseConstants.cs
│ │ ├── IdentityBaseContext.cs
│ │ ├── IdentityBase.Shared.csproj
│ │ ├── Models
│ │ │ ├── ClientProperties.cs
│ │ │ ├── EmailProviderInfo.cs
│ │ │ ├── Enums.cs
│ │ │ ├── ExternalAccount.cs
│ │ │ ├── ExternalProvider.cs
│ │ │ ├── TokenVerificationResult.cs
│ │ │ ├── UserAccount.cs
│ │ │ └── UserClaim.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ ├── Services
│ │ │ ├── AuthenticationService.cs
│ │ │ ├── ClientService.cs
│ │ │ ├── DebugEmailSender.cs
│ │ │ ├── EmailProviderService.cs
│ │ │ ├── IUserAccountStore.cs
│ │ │ ├── NotificationService.cs
│ │ │ ├── ProfileService.cs
│ │ │ ├── TwoFactorAuthService.cs
│ │ │ └── UserAccountService.cs
│ │ ├── Startup
│ │ │ ├── StartupDataLayer.cs
│ │ │ ├── StartupEmailSender.cs
│ │ │ ├── StartupEvents.cs
│ │ │ └── StartupSmsSender.cs
│ │ ├── TagHelpers
│ │ │ └── ActiveRouteTagHelper.cs
│ │ ├── ThemeInfoProvider.cs
│ │ ├── TypedControllerFeatureProvider.cs
│ │ ├── ViewComponents
│ │ │ ├── AccountMenuItem.cs
│ │ │ ├── AccountMenuViewComponent.cs
│ │ │ └── AccountMenuViewModel.cs
│ │ └── WebController.cs
│ └── IdentityBase.Web
│ ├── config
│ │ ├── config.json
│ │ ├── data_clients.json
│ │ ├── data_resources_api.json
│ │ ├── data_resources_identity.json
│ │ ├── data_users.json
│ │ └── idsvr3test.pfx
│ ├── Extensions
│ │ ├── ApplicationPartManagerExtensions.cs
│ │ ├── RequestCultureProvider.cs
│ │ └── WebControllerFeatureProvider.cs
│ ├── Forms
│ │ ├── DefaultFormsIServiceCollectionExtensions.cs
│ │ ├── LoginCreateViewModelAction.cs
│ │ ├── RecoverCreateViewModelAction.cs
│ │ └── RegisterCreateViewModelAction.cs
│ ├── IdentityBase.Web.csproj
│ ├── Plugins
│ │ ├── DefaultTheme
│ │ │ ├── ConfigureAction.cs
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── DefaultTheme.csproj
│ │ │ ├── gulpfile.js
│ │ │ ├── package.json
│ │ │ ├── package-lock.json
│ │ │ ├── plugin.json
│ │ │ ├── README.md
│ │ │ ├── Resources
│ │ │ │ │ ├── _Layout.de-DE.xml
│ │ │ │ │ ├── _Layout.en-US.xml
│ │ │ │ │ ├── UserAccountCreated.de-DE.xml
│ │ │ │ │ ├── UserAccountCreated.en-US.xml
│ │ │ │ │ ├── UserAccountEmailChanged.de-DE.xml
│ │ │ │ │ ├── UserAccountEmailChanged.en-US.xml
│ │ │ │ │ ├── UserAccountInvited.de-DE.xml
│ │ │ │ │ ├── UserAccountInvited.en-US.xml
│ │ │ │ │ ├── UserAccountRecover.de-DE.xml
│ │ │ │ │ └── UserAccountRecover.en-US.xml
│ │ │ │ └── Localization
│ │ │ │ ├── Shared.de-DE.json
│ │ │ │ └── Shared.en-US.json
│ │ │ ├── Views
│ │ │ │ ├── AccountChangePassword
│ │ │ │ │ └── ChangePassword.cshtml
│ │ │ │ ├── AccountExternalLogins
│ │ │ │ │ └── ExternalLogins.cshtml
│ │ │ │ ├── AccountProfile
│ │ │ │ │ └── Profile.cshtml
│ │ │ │ ├── AccountTwoFactorAuth
│ │ │ │ │ └── TwoFactorAuth.cshtml
│ │ │ │ ├── Consent
│ │ │ │ │ ├── Consent.cshtml
│ │ │ │ │ └── _ScopeListItem.cshtml
│ │ │ │ ├── External
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ ├── Merge.cshtml
│ │ │ │ │ └── Success.cshtml
│ │ │ │ ├── Login
│ │ │ │ │ ├── Login.cshtml
│ │ │ │ │ └── LoginFormElements
│ │ │ │ │ ├── Email.cshtml
│ │ │ │ │ ├── Password.cshtml
│ │ │ │ │ ├── RememberMe.cshtml
│ │ │ │ │ └── Submit.cshtml
│ │ │ │ ├── Logout
│ │ │ │ │ ├── LoggedOut.cshtml
│ │ │ │ │ └── Logout.cshtml
│ │ │ │ ├── Recover
│ │ │ │ │ ├── Confirm.cshtml
│ │ │ │ │ ├── ConfirmFormElements
│ │ │ │ │ │ ├── Email.cshtml
│ │ │ │ │ │ └── Submit.cshtml
│ │ │ │ │ ├── InvalidToken.cshtml
│ │ │ │ │ ├── Recover.cshtml
│ │ │ │ │ ├── RecoverFormElements
│ │ │ │ │ │ ├── Email.cshtml
│ │ │ │ │ │ └── Submit.cshtml
│ │ │ │ │ └── Success.cshtml
│ │ │ │ ├── Register
│ │ │ │ │ ├── Confirm.cshtml
│ │ │ │ │ ├── ConfirmFormElements
│ │ │ │ │ │ ├── PasswordConfirm.cshtml
│ │ │ │ │ │ ├── Password.cshtml
│ │ │ │ │ │ └── Submit.cshtml
│ │ │ │ │ ├── InvalidToken.cshtml
│ │ │ │ │ ├── Merge.cshtml
│ │ │ │ │ ├── Merged.cshtml
│ │ │ │ │ ├── Register.cshtml
│ │ │ │ │ ├── RegisterFormElements
│ │ │ │ │ │ ├── Email.cshtml
│ │ │ │ │ │ ├── PasswordConfirm.cshtml
│ │ │ │ │ │ ├── Password.cshtml
│ │ │ │ │ │ └── Submit.cshtml
│ │ │ │ │ └── Success.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Components
│ │ │ │ │ │ └── AccountMenu
│ │ │ │ │ │ └── Default.cshtml
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ ├── _ExternalLogins.cshtml
│ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ ├── Redirect.cshtml
│ │ │ │ │ └── _ValidationSummary.cshtml
│ │ │ │ ├── _ViewImports.cshtml
│ │ │ │ └── _ViewStart.cshtml
│ │ │ └── wwwroot
│ │ │ ├── css
│ │ │ │ ├── _consent.scss
│ │ │ │ ├── _styles.scss
│ │ │ │ ├── theme.min.css
│ │ │ │ ├── theme.min.css.map
│ │ │ │ └── theme.scss
│ │ │ ├── favicon.ico
│ │ │ ├── icon.jpg
│ │ │ ├── icon.png
│ │ │ └── js
│ │ │ ├── jquery.min.js
│ │ │ ├── jquery.min.map
│ │ │ ├── jquery.validate.min.js
│ │ │ ├── jquery.validate.unobtrusive.min.js
│ │ │ ├── theme.js
│ │ │ ├── theme.min.js
│ │ │ └── theme.min.js.map
│ │ ├── IdentityBase.EntityFramework.InMemory
│ │ │ ├── ConfigureAction.cs
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── IdentityBase.EntityFramework.InMemory.csproj
│ │ │ ├── plugin.json
│ │ │ └── README.md
│ │ ├── IdentityBase.EntityFramework.MySql
│ │ │ ├── ConfigureAction.cs
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── DesignTimeDbContextFactory.cs
│ │ │ ├── IdentityBase.EntityFramework.MySql.csproj
│ │ │ ├── Migrations
│ │ │ │ ├── 20190510112502_init.cs
│ │ │ │ ├── 20190510112502_init.Designer.cs
│ │ │ │ └── MigrationDbContextModelSnapshot.cs
│ │ │ ├── plugin.json
│ │ │ └── README.md
│ │ ├── IdentityBase.EntityFramework.Npgsql
│ │ │ ├── ConfigureAction.cs
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── DesignTimeDbContextFactory.cs
│ │ │ ├── IdentityBase.EntityFramework.Npgsql.csproj
│ │ │ ├── Migrations
│ │ │ │ ├── 20190510112448_init.cs
│ │ │ │ ├── 20190510112448_init.Designer.cs
│ │ │ │ └── MigrationDbContextModelSnapshot.cs
│ │ │ ├── NpgsqlEfOptions.cs
│ │ │ ├── plugin.json
│ │ │ └── README.md
│ │ ├── IdentityBase.EntityFramework.SqlServer
│ │ │ ├── ConfigureAction.cs
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── DesignTimeDbContextFactory.cs
│ │ │ ├── IdentityBase.EntityFramework.SqlServer.csproj
│ │ │ ├── Migrations
│ │ │ │ ├── 20190510112517_init.cs
│ │ │ │ ├── 20190510112517_init.Designer.cs
│ │ │ │ └── MigrationDbContextModelSnapshot.cs
│ │ │ ├── plugin.json
│ │ │ └── README.md
│ │ ├── IdentityBase.EntityFramework.zDbInitializer
│ │ │ ├── ConfigBasedStoreInitializer.cs
│ │ │ ├── ConfigureAction.cs
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── ExampleDataStoreInitializer.cs
│ │ │ ├── IdentityBase.EntityFramework.zDbInitializer.csproj
│ │ │ ├── IExampleDataStoreInitializer.cs
│ │ │ ├── plugin.json
│ │ │ └── README.md
│ │ ├── IdentityBase.GoogleRecaptcha
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── GoogleRecaptchaBindInputModelAction.cs
│ │ │ ├── GoogleRecaptchaCreateViewModelAction.cs
│ │ │ ├── GoogleRecaptchaOptions.cs
│ │ │ ├── GoogleRecaptchaVerificationResponse.cs
│ │ │ ├── GoogleRecaptchaViewModel.cs
│ │ │ ├── IdentityBase.GoogleRecaptcha.csproj
│ │ │ ├── plugin.json
│ │ │ └── Views
│ │ │ └── Shared
│ │ │ └── FormElements
│ │ │ └── Recapcha.cshtml
│ │ ├── IdentityBase.RabbitMq
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── IdentityBase.RabbitMq.csproj
│ │ │ └── plugin.json
│ │ ├── IdentityBase.SendGrid
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── IdentityBase.SendGrid.csproj
│ │ │ └── plugin.json
│ │ ├── IdentityBase.Smtp
│ │ │ ├── ConfigureServicesAction.cs
│ │ │ ├── IdentityBase.Smtp.csproj
│ │ │ └── plugin.json
│ │ └── IdentityBase.Twilio
│ │ ├── ConfigureServicesAction.cs
│ │ ├── IdentityBase.Twilio.csproj
│ │ └── plugin.json
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── README.md
│ ├── Startup
│ │ ├── StartupExternalProviders.cs
│ │ ├── StartupIdentityServer.cs
│ │ └── StartupLocalization.cs
│ └── Startup.cs
├── submodules
│ └── ServiceBase
├── test
│ ├── EndToEnd
│ │ ├── cypress
│ │ │ ├── fixtures
│ │ │ │ └── example.json
│ │ │ ├── integration
│ │ │ │ ├── examples
│ │ │ │ │ ├── actions.spec.js
│ │ │ │ │ ├── aliasing.spec.js
│ │ │ │ │ ├── assertions.spec.js
│ │ │ │ │ ├── connectors.spec.js
│ │ │ │ │ ├── cookies.spec.js
│ │ │ │ │ ├── cypress_api.spec.js
│ │ │ │ │ ├── files.spec.js
│ │ │ │ │ ├── local_storage.spec.js
│ │ │ │ │ ├── location.spec.js
│ │ │ │ │ ├── misc.spec.js
│ │ │ │ │ ├── navigation.spec.js
│ │ │ │ │ ├── network_requests.spec.js
│ │ │ │ │ ├── querying.spec.js
│ │ │ │ │ ├── spies_stubs_clocks.spec.js
│ │ │ │ │ ├── traversal.spec.js
│ │ │ │ │ ├── utilities.spec.js
│ │ │ │ │ ├── viewport.spec.js
│ │ │ │ │ ├── waiting.spec.js
│ │ │ │ │ └── window.spec.js
│ │ │ │ └── identitybase
│ │ │ │ └── actions.spec.js
│ │ │ ├── plugins
│ │ │ │ └── index.js
│ │ │ └── support
│ │ │ ├── commands.js
│ │ │ └── index.js
│ │ ├── cypress.json
│ │ ├── package.json
│ │ └── package-lock.json
│ ├── IdentityBase.EntityFramework.IntegrationTests
│ │ ├── DatabaseProviderBuilder.cs
│ │ ├── DatabaseProviderFixture.cs
│ │ ├── DbContexts
│ │ │ └── ClientDbContextTests.cs
│ │ ├── IdentityBase.EntityFramework.IntegrationTests.csproj
│ │ ├── Services
│ │ │ └── CorsPolicyServiceTests.cs
│ │ └── Stores
│ │ ├── ClientStoreTests.cs
│ │ ├── PersistedGrantStoreTests.cs
│ │ ├── ResourceStoreTests.cs
│ │ └── UserAccountStoreTests.cs
│ ├── IdentityBase.EntityFramework.UnitTests
│ │ ├── IdentityBase.EntityFramework.UnitTests.csproj
│ │ └── Mappers
│ │ ├── ClientMappersTests.cs
│ │ ├── PersistedGrantMappersTests.cs
│ │ ├── ScopesMappersTests.cs
│ │ └── UserAccountMappersTest.cs
│ ├── IdentityBase.IntegrationTests
│ │ ├── Constants.cs
│ │ ├── HttpClientExtensions.cs
│ │ ├── IdentityBase.IntegrationTests.csproj
│ │ ├── IHtmlDocumentExtensions.cs
│ │ ├── Schemas.cs
│ │ ├── SchemaUtils.cs
│ │ ├── ServiceBase
│ │ │ ├── EmailServiceHelper.cs
│ │ │ ├── HttpClientExtensions.cs
│ │ │ ├── HttpRequestMessageExtensions.cs
│ │ │ ├── HttpResponseMessageExtensions.cs
│ │ │ ├── IHtmlDocumentExtensions.cs
│ │ │ ├── IServiceCollectionExtensions.cs
│ │ │ ├── MockHttpMessageHandlerBuilder.cs
│ │ │ ├── README.md
│ │ │ ├── TestConfigurationBuilder.cs
│ │ │ └── TestServerBuilder.cs
│ │ ├── TestConfigurationBuilderExtensions.cs
│ │ ├── Tests
│ │ │ ├── ApiChangeEmailTests.cs
│ │ │ ├── ApiDeleteAccount.cs
│ │ │ ├── ApiInvitationTests.cs
│ │ │ ├── LandingPageTests.cs
│ │ │ └── RecoveryAccontTests.cs
│ │ ├── TestServerBuilderExtensions.cs
│ │ ├── TestServerExtensions.cs
│ │ └── xunit.runner.json
│ └── IdentityBase.UnitTests
│ ├── Crypto
│ │ └── DefaultCrypto.cs
│ └── IdentityBase.UnitTests.csproj
└── tools
├── ghr
├── OpenCover.4.6.589.nupkg
└── updeps.exe
141 directories, 499 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论