1 Commits

Author SHA1 Message Date
jrojas 9e2246a459 se agrego rc102 2026-07-06 19:30:28 +02:00
14 changed files with 109 additions and 196 deletions
-2
View File
@@ -379,5 +379,3 @@ MigrationBackup/
# Fody - auto-generated XML schema # Fody - auto-generated XML schema
FodyWeavers.xsd FodyWeavers.xsd
.idea .idea
/.ollamassist/conversations
/write_readme.py
@@ -21,30 +21,20 @@
<PackageReference Include="AutoMapper" Version="16.1.1" /> <PackageReference Include="AutoMapper" Version="16.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.3.11" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0"> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="10.0.9" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="10.0.9" />
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.9" /> <PackageReference Include="Microsoft.Extensions.Http" Version="10.0.9" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" /> <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" />
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.9" /> <PackageReference Include="Microsoft.Extensions.Options" Version="10.0.9" />
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.19.1" />
<PackageReference Include="MongoDB.Driver" Version="3.9.0" /> <PackageReference Include="MongoDB.Driver" Version="3.9.0" />
<PackageReference Include="Quartz" Version="3.18.1" /> <PackageReference Include="Quartz" Version="3.18.1" />
<PackageReference Include="StackExchange.Redis" Version="3.0.0" /> <PackageReference Include="StackExchange.Redis" Version="3.0.0" />
<PackageReference Include="System.Text.Json" Version="10.0.9" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.AspNetCore.Http.Features">
<HintPath>..\..\..\..\..\..\..\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.10\Microsoft.AspNetCore.Http.Features.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>
@@ -10,12 +10,12 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AuditLogs" Version="1.0.59" /> <PackageReference Include="AuditLogs" Version="1.0.59" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.3.11" /> <PackageReference Include="Microsoft.AspNetCore.Http" Version="2.3.11" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.28" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.3.11" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.3.11" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0"> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="10.0.9" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="10.0.9" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.9" /> <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.9" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.19.1" /> <PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.19.1" />
-4
View File
@@ -10,15 +10,11 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AuditLogs" Version="1.0.59" /> <PackageReference Include="AuditLogs" Version="1.0.59" />
<PackageReference Include="BCrypt.Net-Next" Version="4.2.0" /> <PackageReference Include="BCrypt.Net-Next" Version="4.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.3.11" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.3.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.28" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.28" />
<PackageReference Include="MongoDB.Bson" Version="3.9.0" /> <PackageReference Include="MongoDB.Bson" Version="3.9.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="Newtonsoft.Json.Bson" Version="1.0.3" /> <PackageReference Include="Newtonsoft.Json.Bson" Version="1.0.3" />
<PackageReference Include="Serilog" Version="4.3.1" /> <PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="SharpCompress" Version="0.49.1" />
<PackageReference Include="Snappier" Version="1.3.1" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.19.1" /> <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.19.1" />
<PackageReference Include="System.Text.Json" Version="10.0.9" /> <PackageReference Include="System.Text.Json" Version="10.0.9" />
<PackageReference Include="TagLibSharp" Version="2.3.0" /> <PackageReference Include="TagLibSharp" Version="2.3.0" />
@@ -14,8 +14,6 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.9" />
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.9" /> <PackageReference Include="Microsoft.Extensions.Options" Version="10.0.9" />
<PackageReference Include="MongoMigrations.Core" Version="4.0.15" /> <PackageReference Include="MongoMigrations.Core" Version="4.0.15" />
<PackageReference Include="StackExchange.Redis" Version="3.0.0" /> <PackageReference Include="StackExchange.Redis" Version="3.0.0" />
+97 -148
View File
@@ -5,11 +5,12 @@ using adas_core.Domain.Models.MongoModels;
using adas_core.LdapLogin.Configuration; using adas_core.LdapLogin.Configuration;
using FluentValidation; using FluentValidation;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using MongoDB.Bson; using MongoDB.Bson;
using Novell.Directory.Ldap; using System.DirectoryServices.Protocols;
using System.Net;
using Authorization = adas_core.Domain.Models.MongoModels.Authorization;
namespace adas_core.LdapLogin; namespace adas_core.LdapLogin;
@@ -39,157 +40,128 @@ public class LdapLoginService : ILoginService
public async Task<User> Login(string username, string password) public async Task<User> Login(string username, string password)
{ {
// Check for LDAP config if (_ldapConfig.Server == null)
if (_ldapConfig.Server == null) throw new LoginServicesException("LDAP Config not found"); throw new LoginServicesException("LDAP Config not found");
var conn = new LdapConnection();
var identifier = new LdapDirectoryIdentifier(_ldapConfig.Server, _ldapConfig.Port ?? 389);
var connection = new LdapConnection(identifier);
try try
{ {
await conn.ConnectAsync(_ldapConfig.Server, _ldapConfig.Port ?? 389); if (_ldapConfig.LdapUser != null)
}
catch (Exception e)
{
_logger.LogError("[LDAP] Error connecting to {server}, port {port}, Exception: {e}", _ldapConfig.Server,
_ldapConfig.Port, e.Message);
throw;
}
if (_ldapConfig.LdapUser != null)
{
_logger.LogInformation("[LDAP] _ldapConfig.LdapUser is enabled with {LdapUser}", _ldapConfig.LdapUser);
await conn.BindAsync(_ldapConfig.LdapUser, _ldapConfig.LdapPassword);
}
else
{
var ldapUser = (!string.IsNullOrEmpty(_ldapConfig.UserDomainName)
? _ldapConfig.UserDomainName + @"\"
: "") + username;
try
{ {
await conn.BindAsync(ldapUser, password); _logger.LogInformation("[LDAP] Using configured LDAP user {LdapUser}", _ldapConfig.LdapUser);
connection.Credential = new NetworkCredential(_ldapConfig.LdapUser, _ldapConfig.LdapPassword);
} }
catch (LdapException e) else
{ {
_logger.LogError("[LDAP] Error binding ldapUser: {LdapUser} and password", ldapUser); var ldapUser = (!string.IsNullOrEmpty(_ldapConfig.UserDomainName)
? _ldapConfig.UserDomainName + @"\"
: "") + username;
throw new UserNotFoundException(username, e); connection.Credential = new NetworkCredential(ldapUser, password);
}
}
var results = await conn.SearchAsync(
_ldapConfig.SearchBase,
LdapConnection.ScopeSub,
$"({_ldapConfig.UserNameProperty}={username})",
null,
false);
LdapEntry? entry = null;
while (await results.HasMoreAsync())
{
LdapEntry? current = null;
try
{
current = await results.NextAsync();
}
catch (LdapException ex)
{
_logger.LogWarning("[LDAP] Skipping invalid entry: {error}", ex.Message);
continue;
} }
if (current != null) connection.AuthType = AuthType.Basic;
connection.Bind();
}
catch (LdapException e)
{
_logger.LogError("[LDAP] Error binding user {username}", username);
throw new UserNotFoundException(username, e);
}
SearchResultEntry? entry = null;
try
{
var request = new SearchRequest(
_ldapConfig.SearchBase,
$"({_ldapConfig.UserNameProperty}={username})",
SearchScope.Subtree
);
var response = (SearchResponse)connection.SendRequest(request);
foreach (SearchResultEntry current in response.Entries)
{ {
entry = current; entry = current;
break; break;
} }
} }
catch (Exception e)
{
_logger.LogError("[LDAP] Search error for user {username}: {error}", username, e.Message);
throw;
}
if (entry == null)
throw new LoginServicesException("LDAP User not found");
if (entry == null) throw new LoginServicesException("LDAP User not found");
var userEntryLdap = GetUser(entry); var userEntryLdap = GetUser(entry);
var user = await GetOrCreateUser(userEntryLdap, entry); var user = await GetOrCreateUser(userEntryLdap, entry);
_logger.LogInformation("[LDAP] entry is {entry} and user {user}", entry, user);
// user.Authorization.AddRange(GetAuthorities(entry)); _logger.LogInformation("[LDAP] entry found and user {user}", user);
conn.Disconnect();
connection.Dispose();
return user ?? throw new LoginServicesException("LDAP User not found"); return user ?? throw new LoginServicesException("LDAP User not found");
} }
public Task<User> Login(HttpContext context) public Task<User> Login(HttpContext context)
{ => throw new LoginServicesException("Not implemented");
throw new LoginServicesException("Not implemented");
}
public Task<User> Authenticate(string username, string password) public Task<User> Authenticate(string username, string password)
{ => throw new LoginServicesException("Not implemented");
throw new LoginServicesException("Not implemented");
}
public Task<User?> GetById(ObjectId id) public Task<User?> GetById(ObjectId id)
{ => throw new LoginServicesException("Not implemented");
throw new LoginServicesException("Not implemented");
}
public Task<User?> GetByEmail(string email) public Task<User?> GetByEmail(string email)
{ => throw new LoginServicesException("Not implemented");
throw new LoginServicesException("Not implemented");
}
public Task<User?> GetByUsername(string username) public Task<User?> GetByUsername(string username)
{ => throw new LoginServicesException("Not implemented");
throw new LoginServicesException("Not implemented");
}
public Task<List<User>> GetAllUsers() public Task<List<User>> GetAllUsers()
{ => throw new LoginServicesException("Not implemented");
throw new LoginServicesException("Not implemented");
}
private async Task<User?> GetOrCreateUser(User userEntryLdap, LdapEntry entry) private async Task<User?> GetOrCreateUser(User userEntryLdap, SearchResultEntry entry)
{ {
var userToReturn = (await _userService.Value.GetUserByUserName(userEntryLdap.UserName) ?? var userToReturn = (await _userService.Value.GetUserByUserName(userEntryLdap.UserName) ??
await _userService.Value.GetUserByName(userEntryLdap.Name)) ?? await _userService.Value.GetUserByName(userEntryLdap.Name)) ??
await _userService.Value.CreateUser(userEntryLdap); await _userService.Value.CreateUser(userEntryLdap);
if (userToReturn == null) return userToReturn; if (userToReturn == null) return userToReturn;
userToReturn.Authorization = []; userToReturn.Authorization = [];
var authorities = await CheckAuthorities(userToReturn, entry); var authorities = await CheckAuthorities(userToReturn, entry);
userToReturn.Authorization.AddRange(authorities); userToReturn.Authorization.AddRange(authorities);
//foreach (var authorization in userToReturn.Authorization)
//{
// Enum.TryParse<RolesType>(authorization.Rol, out var compareRole);
// if (compareRole == RolesType.Admin) userToReturn.Rol = RolesType.Admin;
//}
return userToReturn; return userToReturn;
} }
private async Task<List<Authorization>> CheckAuthorities(User user, LdapEntry entry) private async Task<List<Authorization>> CheckAuthorities(User user, SearchResultEntry entry)
{ {
try try
{ {
var authorizationMap = GetAuthoritiesMap(entry, user); var authorizationMap = GetAuthoritiesMap(entry, user);
var authorizationWhiteList = GetAuthoritiesWhiteList(entry, user); var authorizationWhiteList = GetAuthoritiesWhiteList(entry, user);
_logger.LogInformation(
"[LDAP] user {user} authorizationMap count is {authorizationMap}, authorizationWhiteList count is {authorizationWhiteList}",
user.UserName, authorizationMap.Count, authorizationWhiteList.Count);
// Primero, creamos un HashSet con los DisplayID de la lista blanca para búsqueda eficiente
var whiteListDisplayIds = new HashSet<string?>(authorizationWhiteList.Select(a => a.DisplayId)); var whiteListDisplayIds = new HashSet<string?>(authorizationWhiteList.Select(a => a.DisplayId));
// Filtramos los elementos de authorizationMap que no están en la lista blanca, basándonos en DisplayID var uniqueMapAuthorizations = authorizationMap
var uniqueMapAuthorizations = authorizationMap.Where(a => !whiteListDisplayIds.Contains(a.DisplayId)); .Where(a => !whiteListDisplayIds.Contains(a.DisplayId));
// Finalmente, combinamos los elementos únicos de authorizationMap con los de authorizationWhiteList
var combinedList = authorizationWhiteList.Concat(uniqueMapAuthorizations).ToList(); var combinedList = authorizationWhiteList.Concat(uniqueMapAuthorizations).ToList();
var userAuthorities = await _authorityService.GetUserAuthorities(user.Id); var userAuthorities = await _authorityService.GetUserAuthorities(user.Id);
foreach (var auth in combinedList) foreach (var auth in combinedList)
{ {
var authFound = userAuthorities.Find(c => c.DisplayId == auth.DisplayId); var authFound = userAuthorities.Find(c => c.DisplayId == auth.DisplayId);
if (authFound is { CanUpdate: true }) if (authFound is { CanUpdate: true })
{ {
authFound.Rol = auth.Rol; authFound.Rol = auth.Rol;
@@ -205,36 +177,32 @@ public class LdapLoginService : ILoginService
} }
catch (Exception e) catch (Exception e)
{ {
_logger.LogError("[LDAP] CheckAuthorities for user {user} has exception {ex}", user.UserName, e.Message); _logger.LogError("[LDAP] CheckAuthorities error for user {user}: {error}",
user.UserName, e.Message);
return []; return [];
} }
} }
private List<Authorization> GetAuthoritiesWhiteList(LdapEntry entry, User user) private List<Authorization> GetAuthoritiesWhiteList(SearchResultEntry entry, User user)
{ {
try try
{ {
var userWhiteList = new List<Authorization>(); var result = new List<Authorization>();
var userNameProperty = _ldapConfig.UserNameProperty;
var whiteList = _ldapConfig.WhiteList.FindAll(u => var whiteList = _ldapConfig.WhiteList.FindAll(u =>
(u.Name != null && entry.Dn.Contains(u.Name, StringComparison.CurrentCultureIgnoreCase)) || (u.Name != null && entry.DistinguishedName.Contains(u.Name, StringComparison.CurrentCultureIgnoreCase)) ||
(u.Username != null && (u.Username != null &&
userNameProperty != null && entry.Attributes[_ldapConfig.UserNameProperty]?[0]?.ToString()
entry.GetAttributeSet().TryGetValue(userNameProperty, out var attr) && ?.Equals(u.Username, StringComparison.CurrentCultureIgnoreCase) == true)
attr.StringValue != null &&
attr.StringValue.Equals(u.Username, StringComparison.CurrentCultureIgnoreCase))
); );
if (whiteList.Count == 0) return userWhiteList;
foreach (var authorityMap in whiteList) foreach (var authorityMap in whiteList)
{ {
if (!Enum.TryParse<PermissionEnum.RolesType>(authorityMap.Rol, out _)) if (!Enum.TryParse<PermissionEnum.RolesType>(authorityMap.Rol, out _))
continue; continue;
userWhiteList.Add(new Authorization result.Add(new Authorization
{ {
UserId = user.Id, UserId = user.Id,
DisplayId = authorityMap.DisplayId, DisplayId = authorityMap.DisplayId,
@@ -242,59 +210,42 @@ public class LdapLoginService : ILoginService
}); });
} }
return userWhiteList; return result;
} }
catch (Exception e) catch (Exception e)
{ {
_logger.LogError("[LDAP] GetAuthoritiesWhiteList for user {user} has exception {ex}", user.UserName, _logger.LogError("[LDAP] GetAuthoritiesWhiteList error: {error}", e.Message);
e.Message);
return []; return [];
} }
} }
private User GetUser(LdapEntry ldapEntry) private User GetUser(SearchResultEntry entry)
{ {
var attributes = ldapEntry.GetAttributeSet(); var user = new User
var user = new User();
// UserName
if (!string.IsNullOrWhiteSpace(_ldapConfig.UserNameProperty) &&
attributes.TryGetValue(_ldapConfig.UserNameProperty, out var userAttr) &&
userAttr?.StringValue != null)
{ {
user.UserName = userAttr.StringValue; UserName = entry.Attributes[_ldapConfig.UserNameProperty]?[0]?.ToString() ?? ""
} };
else
if (!string.IsNullOrWhiteSpace(_ldapConfig.FirstNameProperty))
{ {
user.UserName = ""; var first = entry.Attributes[_ldapConfig.FirstNameProperty]?[0]?.ToString();
if (first != null)
user.Name = first;
} }
_logger.LogInformation("[LDAP] GetUser UserName is {UserName} ", user.UserName); if (!string.IsNullOrWhiteSpace(_ldapConfig.LastNameProperty))
// First name
if (!string.IsNullOrWhiteSpace(_ldapConfig.FirstNameProperty) &&
attributes.TryGetValue(_ldapConfig.FirstNameProperty, out var firstNameAttr) &&
firstNameAttr?.StringValue != null)
{ {
user.Name = firstNameAttr.StringValue; var last = entry.Attributes[_ldapConfig.LastNameProperty]?[0]?.ToString();
} if (last != null)
user.Name = string.IsNullOrEmpty(user.Name)
// Last name ? last
if (!string.IsNullOrWhiteSpace(_ldapConfig.LastNameProperty) && : $"{user.Name} {last}";
attributes.TryGetValue(_ldapConfig.LastNameProperty, out var lastNameAttr) &&
lastNameAttr?.StringValue != null)
{
user.Name = string.IsNullOrEmpty(user.Name)
? lastNameAttr.StringValue
: $"{user.Name} {lastNameAttr.StringValue}";
} }
return user; return user;
} }
private List<Authorization> GetAuthoritiesMap(LdapEntry ldapEntry, User user) private List<Authorization> GetAuthoritiesMap(SearchResultEntry entry, User user)
{ {
try try
{ {
@@ -303,16 +254,14 @@ public class LdapLoginService : ILoginService
if (!_ldapConfig.AuthoritiesMap.Any()) if (!_ldapConfig.AuthoritiesMap.Any())
return authorities; return authorities;
var attributes = ldapEntry.GetAttributeSet(); var groupAttr = entry.Attributes[_ldapConfig.GroupsProperty];
if (!string.IsNullOrWhiteSpace(_ldapConfig.GroupsProperty) || if (groupAttr == null)
!attributes.TryGetValue(_ldapConfig.GroupsProperty!, out var groupsAttr) ||
groupsAttr?.StringValueArray == null)
{
return authorities; return authorities;
}
var groups = groupsAttr.StringValueArray.ToList(); var groups = groupAttr.GetValues(typeof(string))
.Cast<string>()
.ToList();
foreach (var authorityMap in _ldapConfig.AuthoritiesMap) foreach (var authorityMap in _ldapConfig.AuthoritiesMap)
{ {
@@ -335,7 +284,7 @@ public class LdapLoginService : ILoginService
} }
catch (Exception e) catch (Exception e)
{ {
_logger.LogError("Error getting Authorities Map. Return new empty list. Exception: {e}", e); _logger.LogError("[LDAP] GetAuthoritiesMap error: {error}", e.Message);
return []; return [];
} }
} }
@@ -14,12 +14,12 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AuditLogs" Version="1.0.59" /> <PackageReference Include="AuditLogs" Version="1.0.59" />
<PackageReference Include="FluentValidation" Version="12.1.1" /> <PackageReference Include="FluentValidation" Version="12.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.3.11" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0"> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" /> <PackageReference Include="System.DirectoryServices.Protocols" Version="10.0.9" />
<PackageReference Include="Novell.Directory.Ldap.NETStandard" Version="4.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>
@@ -14,12 +14,11 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AuditLogs" Version="1.0.59" /> <PackageReference Include="AuditLogs" Version="1.0.59" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.3.11" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0"> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" />
<PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>
+1 -2
View File
@@ -25,9 +25,8 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="10.0.9" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="8.0.28" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.6.0" />
<PackageReference Include="Microsoft.QualityTools.Testing.Fakes" Version="18.1.1" />
<PackageReference Include="Mongo2Go" Version="4.1.0" /> <PackageReference Include="Mongo2Go" Version="4.1.0" />
<PackageReference Include="MongoMigrations.Core" Version="4.0.15" /> <PackageReference Include="MongoMigrations.Core" Version="4.0.15" />
<PackageReference Include="Moq" Version="4.20.72" /> <PackageReference Include="Moq" Version="4.20.72" />
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
@@ -18,7 +18,6 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>
@@ -15,11 +15,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AuditLogs" Version="1.0.59" /> <PackageReference Include="AuditLogs" Version="1.0.59" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.9" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.9" />
<PackageReference Include="Serilog" Version="4.3.1" /> <PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="SharpCompress" Version="0.49.1" />
<PackageReference Include="Snappier" Version="1.3.1" />
</ItemGroup> </ItemGroup>
@@ -9,7 +9,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AuditLogs" Version="1.0.59" /> <PackageReference Include="AuditLogs" Version="1.0.59" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.9" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
+1 -11
View File
@@ -30,15 +30,11 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.3.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="8.0.28" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.28" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="10.0.9" />
<PackageReference Include="Microsoft.IdentityModel.Protocols" Version="8.19.1" /> <PackageReference Include="Microsoft.IdentityModel.Protocols" Version="8.19.1" />
<PackageReference Include="Microsoft.OpenApi" Version="3.7.0" />
<PackageReference Include="MongoDB.Driver" Version="3.9.0" /> <PackageReference Include="MongoDB.Driver" Version="3.9.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="prometheus-net.AspNetCore" Version="8.2.1" /> <PackageReference Include="prometheus-net.AspNetCore" Version="8.2.1" />
<PackageReference Include="Quartz" Version="3.18.1" />
<PackageReference Include="Serilog" Version="4.3.1" /> <PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="Serilog.AspNetCore" Version="10.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="10.0.0" />
<PackageReference Include="Serilog.Enrichers.Dynamic" Version="1.0.9" /> <PackageReference Include="Serilog.Enrichers.Dynamic" Version="1.0.9" />
@@ -48,12 +44,6 @@
<PackageReference Include="Serilog.Formatting.Compact" Version="3.0.0" /> <PackageReference Include="Serilog.Formatting.Compact" Version="3.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="System.Diagnostics.PerformanceCounter" Version="10.0.9" />
<PackageReference Include="System.Management" Version="10.0.9" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.2" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="WebPush" Version="1.0.13" /> <PackageReference Include="WebPush" Version="1.0.13" />
</ItemGroup> </ItemGroup>
+1 -1
View File
@@ -20,7 +20,7 @@
//"ConnectionString": "mongodb://smartuci:!H12o2020@localhost:27017/?authSource=smartuci", //"ConnectionString": "mongodb://smartuci:!H12o2020@localhost:27017/?authSource=smartuci",
//"ConnectionString": "mongodb://admin:4q*pHca@10.0.20.78:22007", //"ConnectionString": "mongodb://admin:4q*pHca@10.0.20.78:22007",
//"ConnectionString": "mongodb://smacsuci:2(R*aQpu2r@sumo.julianrojas.xyz:27017/?authSource=admin", //"ConnectionString": "mongodb://smacsuci:2(R*aQpu2r@sumo.julianrojas.xyz:27017/?authSource=admin",
"DatabaseName": "adasDevNewStandard" "DatabaseName": "adas"
}, },
"DatabaseConfigurationAudit": { "DatabaseConfigurationAudit": {
"ConnectionString": "mongodb://smacsuci:2(R*aQpu2r@julianrojas.xyz:27017/?authSource=admin", "ConnectionString": "mongodb://smacsuci:2(R*aQpu2r@julianrojas.xyz:27017/?authSource=admin",