EasilyNET.IdentityServer.MongoStorage
2.1.9
dotnet add package EasilyNET.IdentityServer.MongoStorage --version 2.1.9
NuGet\Install-Package EasilyNET.IdentityServer.MongoStorage -Version 2.1.9
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EasilyNET.IdentityServer.MongoStorage" Version="2.1.9" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EasilyNET.IdentityServer.MongoStorage --version 2.1.9
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EasilyNET.IdentityServer.MongoStorage, 2.1.9"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EasilyNET.IdentityServer.MongoStorage as a Cake Addin #addin nuget:?package=EasilyNET.IdentityServer.MongoStorage&version=2.1.9 // Install EasilyNET.IdentityServer.MongoStorage as a Cake Tool #tool nuget:?package=EasilyNET.IdentityServer.MongoStorage&version=2.1.9
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
IdentityServer 7.x Data Persistence for MongoDB
参考项目 Github
寻求帮助: 希望能有懂 Razor 的同学帮我根据官方的 QuickUI 写一个管理页面, 若是能教我 Razor 的话那就更 Nice 了.
- 本地使用 docker 启动 MongoDB 服务
docker run --name mongo1 -p 27017:27017 -d --rm -it -e MONGO_INITDB_ROOT_USERNAME=guest -e MONGO_INITDB_ROOT_PASSWORD="guest" mongo:latest
如何使用.
- Install Package
Install-Package EasilyNET.IdentityServer.MongoStorage
- appsettings.json 内容
{
"ConnectionStrings": {
"MongoDB": "mongodb://guest:guest@127.0.1:27017/?authSource=admin&serverSelectionTimeoutMS=1000"
}
}
- Add the following code to the Program.cs file in the root of the project
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddIdentityServer(options =>
{
options.Events.RaiseErrorEvents = true;
options.Events.RaiseInformationEvents = true;
options.Events.RaiseFailureEvents = true;
options.Events.RaiseSuccessEvents = true;
// see https://docs.duendesoftware.com/identityserver/v6/fundamentals/resources/
options.EmitStaticAudienceClaim = true;
})
.AddConfigurationStore(c =>
{
c.ConnectionString = builder.Configuration.GetConnectionString("MongoDB")!;
c.Database = "IdentityServer";
})
.AddOperationalStore(tco =>
{
tco.Enable = true;
tco.Interval = 3600;
})
// 其他配置
//.AddCustomTokenRequestValidator<CustomTokenRequestValidator>()
.AddDeveloperSigningCredential();
builder.Services.AddAuthentication()
.AddOpenIdConnect("demoidsrv", "IdentityServer", options =>
{
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
options.SignOutScheme = IdentityServerConstants.SignoutScheme;
options.Authority = "https://demo.identityserver.io/";
options.ClientId = "implicit";
options.ResponseType = "id_token";
options.SaveTokens = true;
options.CallbackPath = new("/signin-idsrv");
options.SignedOutCallbackPath = new("/signout-callback-idsrv");
options.RemoteSignOutPath = new("/signout-idsrv");
options.TokenValidationParameters = new() { NameClaimType = "name", RoleClaimType = "role" };
});
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseRouting();
// this seeding is only for the template to bootstrap the DB and users.
// in production you will likely want a different approach.
// 初次运行发送配置数据到数据库
using (var scop = app.Services.GetRequiredService<IServiceScopeFactory>().CreateScope())
{
SendData.EnsureSeedData(scop.ServiceProvider.GetRequiredService<IConfigurationDbContext>());
}
app.UseIdentityServer();
app.UseAuthorization();
app.Run();
internal static class SendData
{
internal static void EnsureSeedData(IConfigurationDbContext context)
{
if (!context.Clients.Any())
{
foreach (var client in Config.Clients)
{
context.AddClient(client.ToEntity());
}
}
if (!context.IdentityResources.Any())
{
foreach (var resource in Config.IdentityResources)
{
context.AddIdentityResource(resource.ToEntity());
}
}
if (!context.ApiResources.Any())
{
foreach (var resource in Config.ApiResources)
{
context.AddApiResource(resource.ToEntity());
}
}
if (!context.ApiScopes.Any())
{
foreach (var resource in Config.ApiScopes)
{
context.AddApiScope(resource.ToEntity());
}
}
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Duende.IdentityServer (>= 7.0.1)
- Mapster (>= 7.4.1-pre01)
- MongoDB.Driver (>= 2.23.2)
- System.IdentityModel.Tokens.Jwt (>= 7.4.0-preview1)
-
net9.0
- Duende.IdentityServer (>= 7.0.1)
- Mapster (>= 7.4.1-pre01)
- MongoDB.Driver (>= 2.23.2)
- System.IdentityModel.Tokens.Jwt (>= 7.4.0-preview1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.1.9 | 248 | 2/21/2024 |