mirror of https://github.com/abpframework/abp.git
639 changed files with 68695 additions and 32791 deletions
@ -0,0 +1,32 @@ |
|||||
|
using Microsoft.AspNetCore.Authorization; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
|
||||
|
namespace OpenIddict.Demo.Client.API.Controllers; |
||||
|
|
||||
|
[ApiController] |
||||
|
[Authorize] |
||||
|
[Route("[controller]")]
|
||||
|
public class WeatherForecastController : ControllerBase |
||||
|
{ |
||||
|
private static readonly string[] Summaries = new[] { |
||||
|
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" |
||||
|
}; |
||||
|
|
||||
|
private readonly ILogger<WeatherForecastController> _logger; |
||||
|
|
||||
|
public WeatherForecastController(ILogger<WeatherForecastController> logger) |
||||
|
{ |
||||
|
_logger = logger; |
||||
|
} |
||||
|
|
||||
|
[HttpGet(Name = "GetWeatherForecast")] |
||||
|
public IEnumerable<WeatherForecast> Get() |
||||
|
{ |
||||
|
return Enumerable.Range(1, 5).Select(index => new WeatherForecast { |
||||
|
Date = DateTime.Now.AddDays(index), |
||||
|
TemperatureC = Random.Shared.Next(-20, 55), |
||||
|
Summary = Summaries[Random.Shared.Next(Summaries.Length)] |
||||
|
}) |
||||
|
.ToArray(); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk.Web"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<TargetFramework>net6.0</TargetFramework> |
||||
|
<Nullable>enable</Nullable> |
||||
|
<ImplicitUsings>enable</ImplicitUsings> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> |
||||
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.3" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
@ -0,0 +1,38 @@ |
|||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer; |
||||
|
|
||||
|
var builder = WebApplication.CreateBuilder(args); |
||||
|
builder.Logging.ClearProviders(); |
||||
|
builder.Logging.AddConsole(); |
||||
|
|
||||
|
// Add services to the container.
|
||||
|
|
||||
|
builder.Services.AddControllers(); |
||||
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||
|
builder.Services.AddEndpointsApiExplorer(); |
||||
|
builder.Services.AddSwaggerGen(); |
||||
|
|
||||
|
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) |
||||
|
.AddJwtBearer(options => |
||||
|
{ |
||||
|
options.Authority = "https://localhost:44301"; |
||||
|
|
||||
|
options.Audience = "OpenIddictDemoAPIResource"; |
||||
|
}); |
||||
|
|
||||
|
var app = builder.Build(); |
||||
|
|
||||
|
// Configure the HTTP request pipeline.
|
||||
|
if (app.Environment.IsDevelopment()) |
||||
|
{ |
||||
|
app.UseSwagger(); |
||||
|
app.UseSwaggerUI(); |
||||
|
} |
||||
|
|
||||
|
app.UseHttpsRedirection(); |
||||
|
|
||||
|
app.UseAuthentication(); |
||||
|
app.UseAuthorization(); |
||||
|
|
||||
|
app.MapControllers(); |
||||
|
|
||||
|
app.Run(); |
||||
@ -0,0 +1,14 @@ |
|||||
|
{ |
||||
|
"profiles": { |
||||
|
"OpenIddict.Demo.Client.API": { |
||||
|
"commandName": "Project", |
||||
|
"dotnetRunMessages": true, |
||||
|
"launchBrowser": true, |
||||
|
"launchUrl": "swagger", |
||||
|
"applicationUrl": "https://localhost:44303", |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
namespace OpenIddict.Demo.Client.API; |
||||
|
|
||||
|
public class WeatherForecast |
||||
|
{ |
||||
|
public DateTime Date { get; set; } |
||||
|
|
||||
|
public int TemperatureC { get; set; } |
||||
|
|
||||
|
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); |
||||
|
|
||||
|
public string? Summary { get; set; } |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
{ |
||||
|
"Logging": { |
||||
|
"LogLevel": { |
||||
|
"Default": "Information" |
||||
|
} |
||||
|
}, |
||||
|
"AllowedHosts": "*" |
||||
|
} |
||||
@ -1,9 +1,13 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk.Web"> |
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
<PropertyGroup> |
<PropertyGroup> |
||||
|
<OutputType>Exe</OutputType> |
||||
<TargetFramework>net6.0</TargetFramework> |
<TargetFramework>net6.0</TargetFramework> |
||||
<Nullable>enable</Nullable> |
|
||||
<ImplicitUsings>enable</ImplicitUsings> |
<ImplicitUsings>enable</ImplicitUsings> |
||||
|
<Nullable>enable</Nullable> |
||||
</PropertyGroup> |
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="IdentityModel" Version="6.0.0" /> |
||||
|
</ItemGroup> |
||||
</Project> |
</Project> |
||||
@ -0,0 +1,57 @@ |
|||||
|
using System.Net.Http.Headers; |
||||
|
using IdentityModel.Client; |
||||
|
|
||||
|
const string email = "admin@abp.io"; |
||||
|
const string password = "1q2w3E*"; |
||||
|
const string server = "https://localhost:44301/"; |
||||
|
const string api = "https://localhost:44303/WeatherForecast"; |
||||
|
const string clientId = "MyClient"; |
||||
|
const string clientSecret = "901564A5-E7FE-42CB-B10D-61EF6A8F3654"; |
||||
|
|
||||
|
var client = new HttpClient(); |
||||
|
|
||||
|
var configuration = await client.GetDiscoveryDocumentAsync(server); |
||||
|
if (configuration.IsError) |
||||
|
{ |
||||
|
throw new Exception($"An error occurred while retrieving the configuration document: {configuration.Error}"); |
||||
|
} |
||||
|
|
||||
|
var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest |
||||
|
{ |
||||
|
Address = configuration.TokenEndpoint, |
||||
|
ClientId = clientId, |
||||
|
ClientSecret = clientSecret, |
||||
|
UserName = email, |
||||
|
Password = password |
||||
|
}); |
||||
|
|
||||
|
if (tokenResponse.IsError) |
||||
|
{ |
||||
|
throw new Exception(tokenResponse.Error); |
||||
|
} |
||||
|
|
||||
|
Console.WriteLine("Access token: {0}", tokenResponse.AccessToken); |
||||
|
Console.WriteLine(); |
||||
|
|
||||
|
|
||||
|
var userinfo = await client.GetUserInfoAsync(new UserInfoRequest() |
||||
|
{ |
||||
|
Address = configuration.UserInfoEndpoint, |
||||
|
Token = tokenResponse.AccessToken |
||||
|
}); |
||||
|
if (userinfo.IsError) |
||||
|
{ |
||||
|
throw new Exception(userinfo.Error); |
||||
|
} |
||||
|
|
||||
|
Console.WriteLine("UserInfo: {0}", userinfo.Raw); |
||||
|
Console.WriteLine(); |
||||
|
|
||||
|
var request = new HttpRequestMessage(HttpMethod.Get, api); |
||||
|
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokenResponse.AccessToken); |
||||
|
|
||||
|
var response = await client.SendAsync(request); |
||||
|
response.EnsureSuccessStatusCode(); |
||||
|
|
||||
|
Console.WriteLine("API response: {0}", await response.Content.ReadAsStringAsync()); |
||||
|
Console.WriteLine(); |
||||
@ -0,0 +1,15 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk.Web"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<TargetFramework>net6.0</TargetFramework> |
||||
|
<Nullable>enable</Nullable> |
||||
|
<ImplicitUsings>enable</ImplicitUsings> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="IdentityModel" Version="6.0.0" /> |
||||
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.3" /> |
||||
|
|
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
@ -0,0 +1,23 @@ |
|||||
|
@page |
||||
|
@model IndexModel |
||||
|
@{ |
||||
|
ViewData["Title"] = "Home page"; |
||||
|
} |
||||
|
|
||||
|
<div class="text-center"> |
||||
|
<h1 class="display-4">Welcome</h1> |
||||
|
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p> |
||||
|
|
||||
|
<a class="btn btn-primary" href="/Login">Login</a> |
||||
|
<a class="btn btn-warning" href="/Logout">Loout</a> |
||||
|
|
||||
|
@if (HttpContext.User.Identity != null && HttpContext.User.Identity.IsAuthenticated) |
||||
|
{ |
||||
|
<ul class="list-group mt-3 text-start"> |
||||
|
@foreach (var claim in HttpContext.User.Claims) |
||||
|
{ |
||||
|
<li class="list-group-item">@claim.Type : @claim.Value</li> |
||||
|
} |
||||
|
</ul> |
||||
|
} |
||||
|
</div> |
||||
@ -0,0 +1,6 @@ |
|||||
|
@page |
||||
|
@model OpenIddict.Demo.Client.Pages.Login |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "Login page"; |
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
using Microsoft.AspNetCore.Authentication; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Microsoft.AspNetCore.Mvc.RazorPages; |
||||
|
|
||||
|
namespace OpenIddict.Demo.Client.Pages; |
||||
|
|
||||
|
public class Login : PageModel |
||||
|
{ |
||||
|
public IActionResult OnGet() |
||||
|
{ |
||||
|
return Challenge(new AuthenticationProperties { RedirectUri = "/" }, "oidc"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,6 @@ |
|||||
|
@page |
||||
|
@model OpenIddict.Demo.Client.Pages.Logout |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "Logout page"; |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Microsoft.AspNetCore.Mvc.RazorPages; |
||||
|
|
||||
|
namespace OpenIddict.Demo.Client.Pages; |
||||
|
|
||||
|
public class Logout : PageModel |
||||
|
{ |
||||
|
public IActionResult OnGet() |
||||
|
{ |
||||
|
return SignOut("Cookies", "oidc"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,60 @@ |
|||||
|
using IdentityModel; |
||||
|
using Microsoft.AspNetCore.Identity; |
||||
|
|
||||
|
var builder = WebApplication.CreateBuilder(args); |
||||
|
builder.Logging.ClearProviders(); |
||||
|
builder.Logging.AddConsole(); |
||||
|
|
||||
|
// Add services to the container.
|
||||
|
builder.Services.AddRazorPages(); |
||||
|
|
||||
|
builder.Services.AddAuthentication(options => |
||||
|
{ |
||||
|
options.DefaultScheme = "Cookies"; |
||||
|
options.DefaultChallengeScheme = "oidc"; |
||||
|
}) |
||||
|
.AddCookie("Cookies", options => |
||||
|
{ |
||||
|
options.ExpireTimeSpan = TimeSpan.FromDays(365); |
||||
|
}) |
||||
|
.AddOpenIdConnect("oidc", options => |
||||
|
{ |
||||
|
options.Authority = "https://localhost:44301/"; |
||||
|
|
||||
|
options.ClientId = "MyClient"; |
||||
|
options.ClientSecret = "901564A5-E7FE-42CB-B10D-61EF6A8F3654"; |
||||
|
|
||||
|
options.RequireHttpsMetadata = false; |
||||
|
options.GetClaimsFromUserInfoEndpoint = true; |
||||
|
options.SaveTokens = true; |
||||
|
|
||||
|
options.ResponseType = OidcConstants.ResponseTypes.Code; |
||||
|
|
||||
|
options.SignOutScheme = "Cookies"; |
||||
|
|
||||
|
options.Scope.Add("email"); |
||||
|
options.Scope.Add("roles"); |
||||
|
}); |
||||
|
|
||||
|
var app = builder.Build(); |
||||
|
|
||||
|
// Configure the HTTP request pipeline.
|
||||
|
if (!app.Environment.IsDevelopment()) |
||||
|
{ |
||||
|
app.UseExceptionHandler("/Error"); |
||||
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
|
app.UseHsts(); |
||||
|
} |
||||
|
|
||||
|
app.UseHttpsRedirection(); |
||||
|
app.UseStaticFiles(); |
||||
|
|
||||
|
app.UseRouting(); |
||||
|
|
||||
|
app.UseAuthentication(); |
||||
|
app.UseAuthorization(); |
||||
|
|
||||
|
app.MapRazorPages(); |
||||
|
|
||||
|
app.Run(); |
||||
|
|
||||
@ -0,0 +1,13 @@ |
|||||
|
{ |
||||
|
"profiles": { |
||||
|
"OpenIddict.Demo.Client.Mvc": { |
||||
|
"commandName": "Project", |
||||
|
"dotnetRunMessages": true, |
||||
|
"launchBrowser": true, |
||||
|
"applicationUrl": "https://localhost:44302", |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
{ |
||||
|
"Logging": { |
||||
|
"LogLevel": { |
||||
|
"Default": "Information" |
||||
|
} |
||||
|
}, |
||||
|
"AllowedHosts": "*" |
||||
|
} |
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
@ -1,10 +0,0 @@ |
|||||
@page |
|
||||
@model IndexModel |
|
||||
@{ |
|
||||
ViewData["Title"] = "Home page"; |
|
||||
} |
|
||||
|
|
||||
<div class="text-center"> |
|
||||
<h1 class="display-4">Welcome</h1> |
|
||||
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p> |
|
||||
</div> |
|
||||
@ -1,8 +0,0 @@ |
|||||
@page |
|
||||
@model PrivacyModel |
|
||||
@{ |
|
||||
ViewData["Title"] = "Privacy Policy"; |
|
||||
} |
|
||||
<h1>@ViewData["Title"]</h1> |
|
||||
|
|
||||
<p>Use this page to detail your site's privacy policy.</p> |
|
||||
@ -1,18 +0,0 @@ |
|||||
using Microsoft.AspNetCore.Mvc; |
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages; |
|
||||
|
|
||||
namespace OpenIddict.Demo.Client.Pages; |
|
||||
|
|
||||
public class PrivacyModel : PageModel |
|
||||
{ |
|
||||
private readonly ILogger<PrivacyModel> _logger; |
|
||||
|
|
||||
public PrivacyModel(ILogger<PrivacyModel> logger) |
|
||||
{ |
|
||||
_logger = logger; |
|
||||
} |
|
||||
|
|
||||
public void OnGet() |
|
||||
{ |
|
||||
} |
|
||||
} |
|
||||
@ -1,25 +0,0 @@ |
|||||
var builder = WebApplication.CreateBuilder(args); |
|
||||
|
|
||||
// Add services to the container.
|
|
||||
builder.Services.AddRazorPages(); |
|
||||
|
|
||||
var app = builder.Build(); |
|
||||
|
|
||||
// Configure the HTTP request pipeline.
|
|
||||
if (!app.Environment.IsDevelopment()) |
|
||||
{ |
|
||||
app.UseExceptionHandler("/Error"); |
|
||||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
|
||||
app.UseHsts(); |
|
||||
} |
|
||||
|
|
||||
app.UseHttpsRedirection(); |
|
||||
app.UseStaticFiles(); |
|
||||
|
|
||||
app.UseRouting(); |
|
||||
|
|
||||
app.UseAuthorization(); |
|
||||
|
|
||||
app.MapRazorPages(); |
|
||||
|
|
||||
app.Run(); |
|
||||
@ -1,28 +0,0 @@ |
|||||
{ |
|
||||
"iisSettings": { |
|
||||
"windowsAuthentication": false, |
|
||||
"anonymousAuthentication": true, |
|
||||
"iisExpress": { |
|
||||
"applicationUrl": "http://localhost:46390", |
|
||||
"sslPort": 44369 |
|
||||
} |
|
||||
}, |
|
||||
"profiles": { |
|
||||
"OpenIddict.Demo.Client": { |
|
||||
"commandName": "Project", |
|
||||
"dotnetRunMessages": true, |
|
||||
"launchBrowser": true, |
|
||||
"applicationUrl": "https://localhost:7210;http://localhost:5210", |
|
||||
"environmentVariables": { |
|
||||
"ASPNETCORE_ENVIRONMENT": "Development" |
|
||||
} |
|
||||
}, |
|
||||
"IIS Express": { |
|
||||
"commandName": "IISExpress", |
|
||||
"launchBrowser": true, |
|
||||
"environmentVariables": { |
|
||||
"ASPNETCORE_ENVIRONMENT": "Development" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,9 +0,0 @@ |
|||||
{ |
|
||||
"DetailedErrors": true, |
|
||||
"Logging": { |
|
||||
"LogLevel": { |
|
||||
"Default": "Information", |
|
||||
"Microsoft.AspNetCore": "Warning" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,9 +0,0 @@ |
|||||
{ |
|
||||
"Logging": { |
|
||||
"LogLevel": { |
|
||||
"Default": "Information", |
|
||||
"Microsoft.AspNetCore": "Warning" |
|
||||
} |
|
||||
}, |
|
||||
"AllowedHosts": "*" |
|
||||
} |
|
||||
@ -0,0 +1,97 @@ |
|||||
|
using System.Globalization; |
||||
|
using OpenIddict.Abstractions; |
||||
|
using Volo.Abp.Data; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
using Volo.Abp.MultiTenancy; |
||||
|
|
||||
|
namespace OpenIddict.Demo.Server.EntityFrameworkCore; |
||||
|
|
||||
|
public class ServerDataSeedContributor: IDataSeedContributor, ITransientDependency |
||||
|
{ |
||||
|
private readonly ICurrentTenant _currentTenant; |
||||
|
private readonly IOpenIddictApplicationManager _applicationManager; |
||||
|
private readonly IOpenIddictScopeManager _scopeManager; |
||||
|
|
||||
|
public ServerDataSeedContributor( |
||||
|
ICurrentTenant currentTenant, |
||||
|
IOpenIddictApplicationManager applicationManager, |
||||
|
IOpenIddictScopeManager scopeManager) |
||||
|
{ |
||||
|
_currentTenant = currentTenant; |
||||
|
_applicationManager = applicationManager; |
||||
|
_scopeManager = scopeManager; |
||||
|
} |
||||
|
|
||||
|
public async Task SeedAsync(DataSeedContext context) |
||||
|
{ |
||||
|
if (await _scopeManager.FindByNameAsync("OpenIddictDemoAPI") == null) |
||||
|
{ |
||||
|
await _scopeManager.CreateAsync(new OpenIddictScopeDescriptor() |
||||
|
{ |
||||
|
DisplayName = "OpenIddict Demo API access", |
||||
|
DisplayNames = |
||||
|
{ |
||||
|
[CultureInfo.GetCultureInfo("zh-Hans")] = "演示 OpenIddict API 访问", |
||||
|
[CultureInfo.GetCultureInfo("tr")] = "OpenIddict Demo API erişimi" |
||||
|
}, |
||||
|
Name = "OpenIddictDemoAPI", |
||||
|
Resources = |
||||
|
{ |
||||
|
"OpenIddictDemoAPIResource" |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
if (await _applicationManager.FindByClientIdAsync("MyClient") == null) |
||||
|
{ |
||||
|
await _applicationManager.CreateAsync(new OpenIddictApplicationDescriptor |
||||
|
{ |
||||
|
ClientId = "MyClient", |
||||
|
ClientSecret = "901564A5-E7FE-42CB-B10D-61EF6A8F3654", |
||||
|
ConsentType = OpenIddictConstants.ConsentTypes.Explicit, |
||||
|
DisplayName = "My Client Application", |
||||
|
PostLogoutRedirectUris = |
||||
|
{ |
||||
|
new Uri("https://localhost:44302/signout-callback-oidc") |
||||
|
}, |
||||
|
RedirectUris = |
||||
|
{ |
||||
|
new Uri("https://localhost:44302/signin-oidc"), |
||||
|
new Uri("https://localhost:4200") |
||||
|
}, |
||||
|
Permissions = |
||||
|
{ |
||||
|
OpenIddictConstants.Permissions.Endpoints.Authorization, |
||||
|
OpenIddictConstants.Permissions.Endpoints.Token, |
||||
|
OpenIddictConstants.Permissions.Endpoints.Device, |
||||
|
OpenIddictConstants.Permissions.Endpoints.Introspection, |
||||
|
OpenIddictConstants.Permissions.Endpoints.Revocation, |
||||
|
OpenIddictConstants.Permissions.Endpoints.Logout, |
||||
|
|
||||
|
OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode, |
||||
|
OpenIddictConstants.Permissions.GrantTypes.Implicit, |
||||
|
OpenIddictConstants.Permissions.GrantTypes.Password, |
||||
|
OpenIddictConstants.Permissions.GrantTypes.RefreshToken, |
||||
|
OpenIddictConstants.Permissions.GrantTypes.DeviceCode, |
||||
|
OpenIddictConstants.Permissions.GrantTypes.ClientCredentials, |
||||
|
|
||||
|
OpenIddictConstants.Permissions.ResponseTypes.Code, |
||||
|
OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken, |
||||
|
OpenIddictConstants.Permissions.ResponseTypes.CodeIdTokenToken, |
||||
|
OpenIddictConstants.Permissions.ResponseTypes.CodeToken, |
||||
|
OpenIddictConstants.Permissions.ResponseTypes.IdToken, |
||||
|
OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken, |
||||
|
OpenIddictConstants.Permissions.ResponseTypes.None, |
||||
|
OpenIddictConstants.Permissions.ResponseTypes.Token, |
||||
|
|
||||
|
OpenIddictConstants.Permissions.Scopes.Email, |
||||
|
OpenIddictConstants.Permissions.Scopes.Profile, |
||||
|
OpenIddictConstants.Permissions.Scopes.Roles, |
||||
|
OpenIddictConstants.Permissions.Scopes.Address, |
||||
|
OpenIddictConstants.Permissions.Scopes.Phone, |
||||
|
OpenIddictConstants.Permissions.Prefixes.Scope + "OpenIddictDemoAPI" |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,32 @@ |
|||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Volo.Abp.Data; |
||||
|
using Volo.Abp.EntityFrameworkCore; |
||||
|
using Volo.Abp.FeatureManagement.EntityFrameworkCore; |
||||
|
using Volo.Abp.Identity.EntityFrameworkCore; |
||||
|
using Volo.Abp.OpenIddict.EntityFrameworkCore; |
||||
|
using Volo.Abp.PermissionManagement.EntityFrameworkCore; |
||||
|
using Volo.Abp.SettingManagement.EntityFrameworkCore; |
||||
|
|
||||
|
namespace OpenIddict.Demo.Server.EntityFrameworkCore; |
||||
|
|
||||
|
[ConnectionStringName("Default")] |
||||
|
public class ServerDbContext : AbpDbContext<ServerDbContext> |
||||
|
{ |
||||
|
public ServerDbContext(DbContextOptions<ServerDbContext> options) |
||||
|
: base(options) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
protected override void OnModelCreating(ModelBuilder builder) |
||||
|
{ |
||||
|
base.OnModelCreating(builder); |
||||
|
|
||||
|
builder.ConfigureIdentity(); |
||||
|
builder.ConfigurePermissionManagement(); |
||||
|
builder.ConfigureSettingManagement(); |
||||
|
builder.ConfigureFeatureManagement(); |
||||
|
|
||||
|
builder.ConfigureOpenIddict(); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,25 @@ |
|||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Microsoft.EntityFrameworkCore.Design; |
||||
|
|
||||
|
namespace OpenIddict.Demo.Server.EntityFrameworkCore; |
||||
|
|
||||
|
public class ServerDbContextFactory : IDesignTimeDbContextFactory<ServerDbContext> |
||||
|
{ |
||||
|
public ServerDbContext CreateDbContext(string[] args) |
||||
|
{ |
||||
|
var configuration = BuildConfiguration(); |
||||
|
var builder = new DbContextOptionsBuilder<ServerDbContext>() |
||||
|
.UseSqlServer(configuration.GetConnectionString("Default")); |
||||
|
|
||||
|
return new ServerDbContext(builder.Options); |
||||
|
} |
||||
|
|
||||
|
private static IConfigurationRoot BuildConfiguration() |
||||
|
{ |
||||
|
var builder = new ConfigurationBuilder() |
||||
|
.SetBasePath(Directory.GetCurrentDirectory()) |
||||
|
.AddJsonFile("appsettings.json", optional: false); |
||||
|
|
||||
|
return builder.Build(); |
||||
|
} |
||||
|
} |
||||
File diff suppressed because it is too large
@ -0,0 +1,706 @@ |
|||||
|
using System; |
||||
|
using Microsoft.EntityFrameworkCore.Migrations; |
||||
|
|
||||
|
#nullable disable |
||||
|
|
||||
|
namespace OpenIddict.Demo.Server.Migrations |
||||
|
{ |
||||
|
public partial class Initial : Migration |
||||
|
{ |
||||
|
protected override void Up(MigrationBuilder migrationBuilder) |
||||
|
{ |
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpClaimTypes", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
Name = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
Required = table.Column<bool>(type: "bit", nullable: false), |
||||
|
IsStatic = table.Column<bool>(type: "bit", nullable: false), |
||||
|
Regex = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true), |
||||
|
RegexDescription = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: true), |
||||
|
Description = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true), |
||||
|
ValueType = table.Column<int>(type: "int", nullable: false), |
||||
|
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpClaimTypes", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpFeatureValues", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
Name = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false), |
||||
|
Value = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false), |
||||
|
ProviderName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
ProviderKey = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpFeatureValues", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpLinkUsers", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
SourceUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
SourceTenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
TargetUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TargetTenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpLinkUsers", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpOpenIddictApplications", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
ClientId = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true), |
||||
|
ClientSecret = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConsentType = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true), |
||||
|
DisplayName = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
DisplayNames = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Permissions = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
PostLogoutRedirectUris = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Properties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
RedirectUris = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Requirements = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Type = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true), |
||||
|
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpOpenIddictApplications", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpOpenIddictScopes", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
Description = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Descriptions = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
DisplayName = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
DisplayNames = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Name = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true), |
||||
|
Properties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Resources = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpOpenIddictScopes", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpOrganizationUnits", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
ParentId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
Code = table.Column<string>(type: "nvarchar(95)", maxLength: 95, nullable: false), |
||||
|
DisplayName = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false), |
||||
|
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpOrganizationUnits", x => x.Id); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpOrganizationUnits_AbpOrganizationUnits_ParentId", |
||||
|
column: x => x.ParentId, |
||||
|
principalTable: "AbpOrganizationUnits", |
||||
|
principalColumn: "Id"); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpPermissionGrants", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
Name = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false), |
||||
|
ProviderName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false), |
||||
|
ProviderKey = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpRoles", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
Name = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
NormalizedName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
IsDefault = table.Column<bool>(type: "bit", nullable: false), |
||||
|
IsStatic = table.Column<bool>(type: "bit", nullable: false), |
||||
|
IsPublic = table.Column<bool>(type: "bit", nullable: false), |
||||
|
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpRoles", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpSecurityLogs", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
ApplicationName = table.Column<string>(type: "nvarchar(96)", maxLength: 96, nullable: true), |
||||
|
Identity = table.Column<string>(type: "nvarchar(96)", maxLength: 96, nullable: true), |
||||
|
Action = table.Column<string>(type: "nvarchar(96)", maxLength: 96, nullable: true), |
||||
|
UserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
UserName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true), |
||||
|
TenantName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
ClientId = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
CorrelationId = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
ClientIpAddress = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
BrowserInfo = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpSettings", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
Name = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false), |
||||
|
Value = table.Column<string>(type: "nvarchar(2048)", maxLength: 2048, nullable: false), |
||||
|
ProviderName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
ProviderKey = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpSettings", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpUsers", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
UserName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
NormalizedUserName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
Name = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
Surname = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true), |
||||
|
Email = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
NormalizedEmail = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
EmailConfirmed = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
PasswordHash = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true), |
||||
|
SecurityStamp = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
IsExternal = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
PhoneNumber = table.Column<string>(type: "nvarchar(16)", maxLength: 16, nullable: true), |
||||
|
PhoneNumberConfirmed = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
IsActive = table.Column<bool>(type: "bit", nullable: false), |
||||
|
TwoFactorEnabled = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
LockoutEnd = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: true), |
||||
|
LockoutEnabled = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
AccessFailedCount = table.Column<int>(type: "int", nullable: false, defaultValue: 0), |
||||
|
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpUsers", x => x.Id); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpOpenIddictAuthorizations", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
ApplicationId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
Properties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Scopes = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Status = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true), |
||||
|
Subject = table.Column<string>(type: "nvarchar(400)", maxLength: 400, nullable: true), |
||||
|
Type = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpOpenIddictAuthorizations", x => x.Id); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpOpenIddictAuthorizations_AbpOpenIddictApplications_ApplicationId", |
||||
|
column: x => x.ApplicationId, |
||||
|
principalTable: "AbpOpenIddictApplications", |
||||
|
principalColumn: "Id"); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpOrganizationUnitRoles", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
RoleId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
OrganizationUnitId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpOrganizationUnitRoles", x => new { x.OrganizationUnitId, x.RoleId }); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpOrganizationUnitRoles_AbpOrganizationUnits_OrganizationUnitId", |
||||
|
column: x => x.OrganizationUnitId, |
||||
|
principalTable: "AbpOrganizationUnits", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpOrganizationUnitRoles_AbpRoles_RoleId", |
||||
|
column: x => x.RoleId, |
||||
|
principalTable: "AbpRoles", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpRoleClaims", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
RoleId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
ClaimType = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
ClaimValue = table.Column<string>(type: "nvarchar(1024)", maxLength: 1024, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpRoleClaims", x => x.Id); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpRoleClaims_AbpRoles_RoleId", |
||||
|
column: x => x.RoleId, |
||||
|
principalTable: "AbpRoles", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpUserClaims", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
UserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
ClaimType = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
||||
|
ClaimValue = table.Column<string>(type: "nvarchar(1024)", maxLength: 1024, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpUserClaims", x => x.Id); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpUserClaims_AbpUsers_UserId", |
||||
|
column: x => x.UserId, |
||||
|
principalTable: "AbpUsers", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpUserLogins", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
UserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
LoginProvider = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
ProviderKey = table.Column<string>(type: "nvarchar(196)", maxLength: 196, nullable: false), |
||||
|
ProviderDisplayName = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider }); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpUserLogins_AbpUsers_UserId", |
||||
|
column: x => x.UserId, |
||||
|
principalTable: "AbpUsers", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpUserOrganizationUnits", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
UserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
OrganizationUnitId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpUserOrganizationUnits", x => new { x.OrganizationUnitId, x.UserId }); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpUserOrganizationUnits_AbpOrganizationUnits_OrganizationUnitId", |
||||
|
column: x => x.OrganizationUnitId, |
||||
|
principalTable: "AbpOrganizationUnits", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpUserOrganizationUnits_AbpUsers_UserId", |
||||
|
column: x => x.UserId, |
||||
|
principalTable: "AbpUsers", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpUserRoles", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
UserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
RoleId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId }); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpUserRoles_AbpRoles_RoleId", |
||||
|
column: x => x.RoleId, |
||||
|
principalTable: "AbpRoles", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpUserRoles_AbpUsers_UserId", |
||||
|
column: x => x.UserId, |
||||
|
principalTable: "AbpUsers", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpUserTokens", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
UserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
LoginProvider = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false), |
||||
|
Name = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false), |
||||
|
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
Value = table.Column<string>(type: "nvarchar(max)", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpUserTokens_AbpUsers_UserId", |
||||
|
column: x => x.UserId, |
||||
|
principalTable: "AbpUsers", |
||||
|
principalColumn: "Id", |
||||
|
onDelete: ReferentialAction.Cascade); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateTable( |
||||
|
name: "AbpOpenIddictTokens", |
||||
|
columns: table => new |
||||
|
{ |
||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
||||
|
ApplicationId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
AuthorizationId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
ExpirationDate = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
Payload = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
Properties = table.Column<string>(type: "nvarchar(max)", nullable: true), |
||||
|
RedemptionDate = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
ReferenceId = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true), |
||||
|
Status = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true), |
||||
|
Subject = table.Column<string>(type: "nvarchar(400)", maxLength: 400, nullable: true), |
||||
|
Type = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true), |
||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), |
||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), |
||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false), |
||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), |
||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true) |
||||
|
}, |
||||
|
constraints: table => |
||||
|
{ |
||||
|
table.PrimaryKey("PK_AbpOpenIddictTokens", x => x.Id); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpOpenIddictTokens_AbpOpenIddictApplications_ApplicationId", |
||||
|
column: x => x.ApplicationId, |
||||
|
principalTable: "AbpOpenIddictApplications", |
||||
|
principalColumn: "Id"); |
||||
|
table.ForeignKey( |
||||
|
name: "FK_AbpOpenIddictTokens_AbpOpenIddictAuthorizations_AuthorizationId", |
||||
|
column: x => x.AuthorizationId, |
||||
|
principalTable: "AbpOpenIddictAuthorizations", |
||||
|
principalColumn: "Id"); |
||||
|
}); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpFeatureValues_Name_ProviderName_ProviderKey", |
||||
|
table: "AbpFeatureValues", |
||||
|
columns: new[] { "Name", "ProviderName", "ProviderKey" }, |
||||
|
unique: true, |
||||
|
filter: "[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpLinkUsers_SourceUserId_SourceTenantId_TargetUserId_TargetTenantId", |
||||
|
table: "AbpLinkUsers", |
||||
|
columns: new[] { "SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId" }, |
||||
|
unique: true, |
||||
|
filter: "[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOpenIddictApplications_ClientId", |
||||
|
table: "AbpOpenIddictApplications", |
||||
|
column: "ClientId", |
||||
|
unique: true, |
||||
|
filter: "[ClientId] IS NOT NULL"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOpenIddictAuthorizations_ApplicationId_Status_Subject_Type", |
||||
|
table: "AbpOpenIddictAuthorizations", |
||||
|
columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOpenIddictScopes_Name", |
||||
|
table: "AbpOpenIddictScopes", |
||||
|
column: "Name", |
||||
|
unique: true, |
||||
|
filter: "[Name] IS NOT NULL"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOpenIddictTokens_ApplicationId_Status_Subject_Type", |
||||
|
table: "AbpOpenIddictTokens", |
||||
|
columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOpenIddictTokens_AuthorizationId", |
||||
|
table: "AbpOpenIddictTokens", |
||||
|
column: "AuthorizationId"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOpenIddictTokens_ReferenceId", |
||||
|
table: "AbpOpenIddictTokens", |
||||
|
column: "ReferenceId", |
||||
|
unique: true, |
||||
|
filter: "[ReferenceId] IS NOT NULL"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOrganizationUnitRoles_RoleId_OrganizationUnitId", |
||||
|
table: "AbpOrganizationUnitRoles", |
||||
|
columns: new[] { "RoleId", "OrganizationUnitId" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOrganizationUnits_Code", |
||||
|
table: "AbpOrganizationUnits", |
||||
|
column: "Code"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpOrganizationUnits_ParentId", |
||||
|
table: "AbpOrganizationUnits", |
||||
|
column: "ParentId"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpPermissionGrants_TenantId_Name_ProviderName_ProviderKey", |
||||
|
table: "AbpPermissionGrants", |
||||
|
columns: new[] { "TenantId", "Name", "ProviderName", "ProviderKey" }, |
||||
|
unique: true, |
||||
|
filter: "[TenantId] IS NOT NULL"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpRoleClaims_RoleId", |
||||
|
table: "AbpRoleClaims", |
||||
|
column: "RoleId"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpRoles_NormalizedName", |
||||
|
table: "AbpRoles", |
||||
|
column: "NormalizedName"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpSecurityLogs_TenantId_Action", |
||||
|
table: "AbpSecurityLogs", |
||||
|
columns: new[] { "TenantId", "Action" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpSecurityLogs_TenantId_ApplicationName", |
||||
|
table: "AbpSecurityLogs", |
||||
|
columns: new[] { "TenantId", "ApplicationName" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpSecurityLogs_TenantId_Identity", |
||||
|
table: "AbpSecurityLogs", |
||||
|
columns: new[] { "TenantId", "Identity" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpSecurityLogs_TenantId_UserId", |
||||
|
table: "AbpSecurityLogs", |
||||
|
columns: new[] { "TenantId", "UserId" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpSettings_Name_ProviderName_ProviderKey", |
||||
|
table: "AbpSettings", |
||||
|
columns: new[] { "Name", "ProviderName", "ProviderKey" }, |
||||
|
unique: true, |
||||
|
filter: "[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUserClaims_UserId", |
||||
|
table: "AbpUserClaims", |
||||
|
column: "UserId"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUserLogins_LoginProvider_ProviderKey", |
||||
|
table: "AbpUserLogins", |
||||
|
columns: new[] { "LoginProvider", "ProviderKey" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUserOrganizationUnits_UserId_OrganizationUnitId", |
||||
|
table: "AbpUserOrganizationUnits", |
||||
|
columns: new[] { "UserId", "OrganizationUnitId" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUserRoles_RoleId_UserId", |
||||
|
table: "AbpUserRoles", |
||||
|
columns: new[] { "RoleId", "UserId" }); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUsers_Email", |
||||
|
table: "AbpUsers", |
||||
|
column: "Email"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUsers_NormalizedEmail", |
||||
|
table: "AbpUsers", |
||||
|
column: "NormalizedEmail"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUsers_NormalizedUserName", |
||||
|
table: "AbpUsers", |
||||
|
column: "NormalizedUserName"); |
||||
|
|
||||
|
migrationBuilder.CreateIndex( |
||||
|
name: "IX_AbpUsers_UserName", |
||||
|
table: "AbpUsers", |
||||
|
column: "UserName"); |
||||
|
} |
||||
|
|
||||
|
protected override void Down(MigrationBuilder migrationBuilder) |
||||
|
{ |
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpClaimTypes"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpFeatureValues"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpLinkUsers"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpOpenIddictScopes"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpOpenIddictTokens"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpOrganizationUnitRoles"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpPermissionGrants"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpRoleClaims"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpSecurityLogs"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpSettings"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpUserClaims"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpUserLogins"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpUserOrganizationUnits"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpUserRoles"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpUserTokens"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpOpenIddictAuthorizations"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpOrganizationUnits"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpRoles"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpUsers"); |
||||
|
|
||||
|
migrationBuilder.DropTable( |
||||
|
name: "AbpOpenIddictApplications"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
File diff suppressed because it is too large
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue