Update Ras 加密
This commit is contained in:
@@ -4,12 +4,6 @@
|
|||||||
<name>Ewide.Application</name>
|
<name>Ewide.Application</name>
|
||||||
</assembly>
|
</assembly>
|
||||||
<members>
|
<members>
|
||||||
<member name="M:Ewide.Application.Service.HouseProjectInfo.XMLHandler.GetDataBase">
|
|
||||||
<summary>
|
|
||||||
读取数据库的所有表 并拿到数据
|
|
||||||
</summary>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="T:Ewide.Application.Service.HouseProjectInfo.HouseProjectInfoService">
|
<member name="T:Ewide.Application.Service.HouseProjectInfo.HouseProjectInfoService">
|
||||||
<summary>
|
<summary>
|
||||||
项目管理相关服务
|
项目管理相关服务
|
||||||
|
|||||||
@@ -28,52 +28,6 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace Ewide.Application.Service.HouseProjectInfo
|
namespace Ewide.Application.Service.HouseProjectInfo
|
||||||
{
|
{
|
||||||
[ApiDescriptionSettings(Name = "xml", Order = 3)]
|
|
||||||
public class XMLHandler : IDynamicApiController, ITransient
|
|
||||||
{
|
|
||||||
private readonly DefaultDbContext _db;
|
|
||||||
|
|
||||||
public XMLHandler(DefaultDbContext db)
|
|
||||||
{
|
|
||||||
_db = db;
|
|
||||||
}
|
|
||||||
[HttpGet("/xml/detail")]
|
|
||||||
public async Task XMLDoneAsync()
|
|
||||||
{
|
|
||||||
XmlSerializerUtil xmlHandler = new XmlSerializerUtil();
|
|
||||||
xmlHandler.WriteDataSeed();
|
|
||||||
//拿到数据保存到 XML文件
|
|
||||||
//Dictionary<string, object> dicDataBase = await GetDataBase();
|
|
||||||
//foreach (KeyValuePair<string, object> item in dicDataBase)
|
|
||||||
//{
|
|
||||||
// xmlHandler.WriteXML(item.Value.GetType(), item.Value, item.Key);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 读取数据库的所有表 并拿到数据
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
private async Task<Dictionary<string, object>> GetDataBase()
|
|
||||||
{
|
|
||||||
Dictionary<string, object> dicDataBase = new Dictionary<string, object>();
|
|
||||||
var defaultConnection = App.Configuration["ConnectionStrings:DefaultConnection"];
|
|
||||||
//获取 所有继承 IEntity 接口的表
|
|
||||||
IEnumerable<IEntityType> entityTypedb = _db.Model.GetEntityTypes().Where(x => typeof(IEntity).IsAssignableFrom(x.ClrType)).ToList();
|
|
||||||
|
|
||||||
foreach (IEntityType item in entityTypedb)
|
|
||||||
{
|
|
||||||
MethodInfo mi = _db.GetType().GetMethods().FirstOrDefault(s => s.Name == "Set");
|
|
||||||
MethodInfo miConstructed = mi.MakeGenericMethod(item.ClrType);
|
|
||||||
object objList = miConstructed.Invoke(_db, null);
|
|
||||||
var objsource = item.ClrType.MakeList(objList);
|
|
||||||
dicDataBase.Add(item.ClrType.Name, objsource);
|
|
||||||
}
|
|
||||||
await _db.Database.CloseConnectionAsync();
|
|
||||||
return dicDataBase;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 项目管理相关服务
|
/// 项目管理相关服务
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace Ewide.Core
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Table("sys_emp_ext_org_pos")]
|
[Table("sys_emp_ext_org_pos")]
|
||||||
[Comment("员工附属机构职位表")]
|
[Comment("员工附属机构职位表")]
|
||||||
public class SysEmpExtOrgPos : IEntity, IEntityTypeBuilder<SysEmpExtOrgPos>, IEntitySeedData<SysEmpExtOrgPos>
|
public class SysEmpExtOrgPos : IEntity, IEntityTypeBuilder<SysEmpExtOrgPos>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 员工Id
|
/// 员工Id
|
||||||
@@ -59,16 +59,16 @@ namespace Ewide.Core
|
|||||||
entityBuilder.HasKey(c => new { c.SysEmpId, c.SysOrgId, c.SysPosId });
|
entityBuilder.HasKey(c => new { c.SysEmpId, c.SysOrgId, c.SysPosId });
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<SysEmpExtOrgPos> HasData(DbContext dbContext, Type dbContextLocator)
|
//public IEnumerable<SysEmpExtOrgPos> HasData(DbContext dbContext, Type dbContextLocator)
|
||||||
{
|
//{
|
||||||
return new[]
|
// return new[]
|
||||||
{
|
// {
|
||||||
new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "12d888de-f55d-4c88-b0a0-7c3510664d97", SysPosId = "269236c4-d74e-4e54-9d50-f6f61580a197" },
|
// new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "12d888de-f55d-4c88-b0a0-7c3510664d97", SysPosId = "269236c4-d74e-4e54-9d50-f6f61580a197" },
|
||||||
new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "8a2271d6-5bda-4544-bdd3-27e53a8b418e", SysPosId = "46c68a62-f119-4ff7-b621-0bbd77504538" },
|
// new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "8a2271d6-5bda-4544-bdd3-27e53a8b418e", SysPosId = "46c68a62-f119-4ff7-b621-0bbd77504538" },
|
||||||
new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "127c0a5d-43ac-4370-b313-082361885aca", SysPosId = "5bd8c466-2bca-4386-a551-daac78e3cee8" },
|
// new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "127c0a5d-43ac-4370-b313-082361885aca", SysPosId = "5bd8c466-2bca-4386-a551-daac78e3cee8" },
|
||||||
new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "f236ab2d-e1b5-4e9d-844f-a59ec32c20e4", SysPosId = "d89a3afe-e6ba-4018-bdae-3c98bb47ad66" },
|
// new SysEmpExtOrgPos { SysEmpId = "d0ead3dc-5096-4e15-bc6d-f640be5301ec", SysOrgId = "f236ab2d-e1b5-4e9d-844f-a59ec32c20e4", SysPosId = "d89a3afe-e6ba-4018-bdae-3c98bb47ad66" },
|
||||||
new SysEmpExtOrgPos { SysEmpId = "16a74726-e156-499f-9942-0e0e24ad0c3f", SysOrgId = "f236ab2d-e1b5-4e9d-844f-a59ec32c20e4", SysPosId = "269236c4-d74e-4e54-9d50-f6f61580a197" }
|
// new SysEmpExtOrgPos { SysEmpId = "16a74726-e156-499f-9942-0e0e24ad0c3f", SysOrgId = "f236ab2d-e1b5-4e9d-844f-a59ec32c20e4", SysPosId = "269236c4-d74e-4e54-9d50-f6f61580a197" }
|
||||||
};
|
// };
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7018,6 +7018,109 @@
|
|||||||
<param name="Milliseconds"></param>
|
<param name="Milliseconds"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.RSAHandler.RSAKey(System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
生成公私钥
|
||||||
|
</summary>
|
||||||
|
<param name="PrivateKeyPath"></param>
|
||||||
|
<param name="PublicKeyPath"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.RSAHandler.CreatePublicKeyXML(System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
创建公钥文件
|
||||||
|
</summary>
|
||||||
|
<param name="path"></param>
|
||||||
|
<param name="publickey"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.RSAHandler.CreatePrivateKeyXML(System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
创建私钥文件
|
||||||
|
</summary>
|
||||||
|
<param name="path"></param>
|
||||||
|
<param name="privatekey"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.RSAHandler.RSAEncrypt(System.String)">
|
||||||
|
<summary>
|
||||||
|
RSA加密
|
||||||
|
</summary>
|
||||||
|
<param name="content"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.RSAHandler.RSADecrypt(System.String)">
|
||||||
|
<summary>
|
||||||
|
RSA解密
|
||||||
|
</summary>
|
||||||
|
<param name="content"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<!-- Badly formed XML comment ignored for member "M:Ewide.Core.Util.TypeHelper.MakeList(System.Type,System.Object[])" -->
|
||||||
|
<!-- Badly formed XML comment ignored for member "M:Ewide.Core.Util.TypeHelper.MakeList(System.Type,System.Object)" -->
|
||||||
|
<!-- Badly formed XML comment ignored for member "M:Ewide.Core.Util.TypeHelper.DataTableToList(System.Type,System.Data.DataTable)" -->
|
||||||
|
<member name="P:Ewide.Core.Util.XmlSerializerUtil.DirPath">
|
||||||
|
<summary>
|
||||||
|
XML 要读取的路径
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Ewide.Core.Util.XmlSerializerUtil.currentAssemblyName">
|
||||||
|
<summary>
|
||||||
|
当前程序集
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.ReaderALL">
|
||||||
|
<summary>
|
||||||
|
读取文件夹下所有XML
|
||||||
|
add-migration init -c defaultDbContext 备用数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.Deserialize(System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
反序列化
|
||||||
|
</summary>
|
||||||
|
<param name="type"></param>
|
||||||
|
<param name="xmlContent">XML内容</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.StreamRead(System.String)">
|
||||||
|
<summary>
|
||||||
|
数据流读取
|
||||||
|
</summary>
|
||||||
|
<param name="path"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.AppInfo(System.String)">
|
||||||
|
<summary>
|
||||||
|
反射 根据类名 反射整个类 得到实例
|
||||||
|
</summary>
|
||||||
|
<param name="name"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.WriteXML(System.Type,System.Object,System.String)">
|
||||||
|
<summary>
|
||||||
|
写入XML到磁盘
|
||||||
|
</summary>
|
||||||
|
<param name="type">类型</param>
|
||||||
|
<param name="data">数据</param>
|
||||||
|
<param name="className">XML名称</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.CurrentDirPath">
|
||||||
|
<summary>
|
||||||
|
要操作的文件夹目录
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.CurrentDirPath(System.String)">
|
||||||
|
<summary>
|
||||||
|
根据类名 创建一个XML文件 写入数据
|
||||||
|
</summary>
|
||||||
|
<param name="className"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ewide.Core.Util.XmlSerializerUtil.WriteDataSeed">
|
||||||
|
<summary>
|
||||||
|
写入种子数据 --不常用
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:Ewide.Core.ITreeNode">
|
<member name="T:Ewide.Core.ITreeNode">
|
||||||
<summary>
|
<summary>
|
||||||
树基类
|
树基类
|
||||||
@@ -7067,13 +7170,5 @@
|
|||||||
<param name="node"></param>
|
<param name="node"></param>
|
||||||
<param name="childNodeLists"></param>
|
<param name="childNodeLists"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Ewide.Core.Util.XmlSerializerUtil.WriteXML(System.Type,System.Object,System.String)">
|
|
||||||
<summary>
|
|
||||||
写入XML到磁盘
|
|
||||||
</summary>
|
|
||||||
<param name="type">类型</param>
|
|
||||||
<param name="data">数据</param>
|
|
||||||
<param name="className">XML名称</param>
|
|
||||||
</member>
|
|
||||||
</members>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Furion;
|
using Ewide.Core.Util;
|
||||||
|
using Furion;
|
||||||
using Furion.DatabaseAccessor;
|
using Furion.DatabaseAccessor;
|
||||||
using Furion.DatabaseAccessor.Extensions;
|
using Furion.DatabaseAccessor.Extensions;
|
||||||
using Furion.DataEncryption;
|
using Furion.DataEncryption;
|
||||||
@@ -69,8 +70,9 @@ namespace Ewide.Core.Service
|
|||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public async Task<string> LoginAsync([Required] LoginInput input)
|
public async Task<string> LoginAsync([Required] LoginInput input)
|
||||||
{
|
{
|
||||||
|
string pwd = RSAHandler.RSADecrypt(input.Password);
|
||||||
// 获取加密后的密码
|
// 获取加密后的密码
|
||||||
var encryptPasswod = MD5Encryption.Encrypt(input.Password);
|
var encryptPasswod = MD5Encryption.Encrypt(pwd);
|
||||||
|
|
||||||
// 判断用户名和密码是否正确
|
// 判断用户名和密码是否正确
|
||||||
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Account.Equals(input.Account) && u.Password.Equals(encryptPasswod));
|
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Account.Equals(input.Account) && u.Password.Equals(encryptPasswod));
|
||||||
|
|||||||
97
Api/Ewide.Core/Util/RSAHandler.cs
Normal file
97
Api/Ewide.Core/Util/RSAHandler.cs
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
using Furion.FriendlyException;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Ewide.Core.Util
|
||||||
|
{
|
||||||
|
public static class RSAHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 生成公私钥
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="PrivateKeyPath"></param>
|
||||||
|
/// <param name="PublicKeyPath"></param>
|
||||||
|
public static void RSAKey(string PrivateKeyPath, string PublicKeyPath)
|
||||||
|
{
|
||||||
|
RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
|
||||||
|
CreatePrivateKeyXML(PrivateKeyPath, provider.ToXmlString(true));
|
||||||
|
CreatePublicKeyXML(PublicKeyPath, provider.ToXmlString(false));
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 创建公钥文件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="path"></param>
|
||||||
|
/// <param name="publickey"></param>
|
||||||
|
public static void CreatePublicKeyXML(string path, string publickey)
|
||||||
|
{
|
||||||
|
using (FileStream publickeyxml = new FileStream(path, FileMode.Create))
|
||||||
|
{
|
||||||
|
using (StreamWriter sw = new StreamWriter(publickeyxml))
|
||||||
|
{
|
||||||
|
sw.WriteLine(publickey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建私钥文件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="path"></param>
|
||||||
|
/// <param name="privatekey"></param>
|
||||||
|
public static void CreatePrivateKeyXML(string path, string privatekey)
|
||||||
|
{
|
||||||
|
using (FileStream privatekeyxml = new FileStream(path, FileMode.Create))
|
||||||
|
{
|
||||||
|
using (StreamWriter sw = new StreamWriter(privatekeyxml))
|
||||||
|
{
|
||||||
|
sw.WriteLine(privatekey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RSA加密
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="content"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string RSAEncrypt(string content)
|
||||||
|
{
|
||||||
|
string publickey = @"<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
|
||||||
|
|
||||||
|
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
|
||||||
|
byte[] cipherbytes;
|
||||||
|
rsa.FromXmlString(publickey);
|
||||||
|
cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(content), false);
|
||||||
|
return Convert.ToBase64String(cipherbytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RSA解密
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="content"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string RSADecrypt(string content)
|
||||||
|
{
|
||||||
|
string privatekey = @"<RSAKeyValue><Modulus>tu98wMoo297l+juulU4a3Xx7c2SZ93f0gTPKohE0uz4o8jWN8zXnAAfhf6MMTlkgf+qIwaORLtBQohDcX6Xp02Qe7Cq2LujVR+YJHxy2uo8+KTc5Rj/d0OkTjeCozGaJQH0XrwUO7w+rDnyXzA52IvMZPnUV3KnOj1mPH0IhrOU=</Modulus><Exponent>AQAB</Exponent><P>7yKLJO9dobe7pNW3ob+Vse8kvlA+PObDrZNqFxUTLyXoAeHDnwz3BjJ2EVUPNJHV5F1/KPLTvADIjDrdB1qcbw==</P><Q>w9ZK0SHBddtE91skFFS72YDmxzmXumSuUyREStVul9ke0oU2HjcZA915bmR0Zrh1RzO3y1w9zXVn+GdZGjyd6w==</Q><DP>ncA67E2fhcwv0+hMcD5zYOLyaT2EISbWFQ43ISz879BgwcUOCEFEP+lP69Uh57sAz9pBxWCS/uXBZoh6QJysrw==</DP><DQ>vbC8F4YS1g3l55Koh+jra+qnnyHyDeGn2XCvlazWys7MRC40FWBZIp1MGdnDxhu1vZoi1SAr3O90HfA9JmTAsQ==</DQ><InverseQ>00v2vMCcgXy78eMby7R6zfZzacVnVFO2WeyxYF7pjrXYYP+C4JSJkWpy6JGLWbgZrK8HAuRguJmdRi8K2KiYWg==</InverseQ><D>rV3nb9nmwQDMGMrI2GyN30uivygfFj0TdgK8Tb1aqPzu1yRT46M4yXmuhkTiW7nxp+iANGssIx5+3Ch4gRj+r6BgBPldWNErK95a2v2Ae1+EzfVf21ybguBYeUVnV9c8qwoodZSVOajZapOgoS6s5TEOxHWRcF22AiFuaD1Tl90=</D></RSAKeyValue>";
|
||||||
|
|
||||||
|
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
|
||||||
|
byte[] cipherbytes;
|
||||||
|
try
|
||||||
|
{ //很有可能是报文被修改 情况很小
|
||||||
|
rsa.FromXmlString(privatekey);
|
||||||
|
cipherbytes = rsa.Decrypt(Convert.FromBase64String(content), false);
|
||||||
|
return Encoding.UTF8.GetString(cipherbytes);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
throw Oops.Oh(ErrorCode.D1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -179,11 +179,8 @@ namespace Ewide.EntityFramework.Core
|
|||||||
data.Add(obj);
|
data.Add(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (data.Count>0)
|
|
||||||
{
|
|
||||||
modelBuilder.Entity(item.Key).HasData(data);
|
modelBuilder.Entity(item.Key).HasData(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"ConnectionStrings": {
|
||||||
|
//"DefaultConnection": "Data Source=./Ewide.db",
|
||||||
|
"DefaultConnection": "Data Source=localhost;Database=ewide;User ID=root;Password=root;pooling=true;port=3306;sslmode=none;CharSet=utf8;"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -26,5 +26,11 @@
|
|||||||
<param name="httpContext"></param>
|
<param name="httpContext"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Ewide.Web.Core.Service.DBqueryService.GetDataBase">
|
||||||
|
<summary>
|
||||||
|
读取数据库的所有表 并拿到数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
</members>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
|||||||
67
Api/Ewide.Web.Core/Service/DBqueryService.cs
Normal file
67
Api/Ewide.Web.Core/Service/DBqueryService.cs
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
using Ewide.Core.Util;
|
||||||
|
using Ewide.EntityFramework.Core;
|
||||||
|
using Furion;
|
||||||
|
using Furion.DatabaseAccessor;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
using Furion.DynamicApiController;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Ewide.Web.Core.Service
|
||||||
|
{
|
||||||
|
[ApiDescriptionSettings(Name = "DBHandler", Order = 3)]
|
||||||
|
public class DBqueryService : IDynamicApiController, ITransient
|
||||||
|
{
|
||||||
|
private readonly DefaultDbContext _db;
|
||||||
|
|
||||||
|
public DBqueryService(DefaultDbContext db)
|
||||||
|
{
|
||||||
|
_db = db;
|
||||||
|
}
|
||||||
|
[HttpGet("/DBreader/detail")]
|
||||||
|
[AllowAnonymous]
|
||||||
|
public async Task XMLDoneAsync()
|
||||||
|
{
|
||||||
|
#if DEBUG
|
||||||
|
XmlSerializerUtil xmlHandler = new XmlSerializerUtil();
|
||||||
|
xmlHandler.WriteDataSeed();
|
||||||
|
//拿到数据保存到 XML文件
|
||||||
|
Dictionary<string, object> dicDataBase = await GetDataBase();
|
||||||
|
foreach (KeyValuePair<string, object> item in dicDataBase)
|
||||||
|
{
|
||||||
|
xmlHandler.WriteXML(item.Value.GetType(), item.Value, item.Key);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 读取数据库的所有表 并拿到数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<Dictionary<string, object>> GetDataBase()
|
||||||
|
{
|
||||||
|
Dictionary<string, object> dicDataBase = new Dictionary<string, object>();
|
||||||
|
var defaultConnection = App.Configuration["ConnectionStrings:DefaultConnection"];
|
||||||
|
//获取 所有继承 IEntity 接口的表
|
||||||
|
IEnumerable<IEntityType> entityTypedb = _db.Model.GetEntityTypes().Where(x => typeof(IEntity).IsAssignableFrom(x.ClrType)).ToList();
|
||||||
|
|
||||||
|
foreach (IEntityType item in entityTypedb)
|
||||||
|
{
|
||||||
|
MethodInfo mi = _db.GetType().GetMethods().FirstOrDefault(s => s.Name == "Set");
|
||||||
|
MethodInfo miConstructed = mi.MakeGenericMethod(item.ClrType);
|
||||||
|
object objList = miConstructed.Invoke(_db, null);
|
||||||
|
var objsource = item.ClrType.MakeList(objList);
|
||||||
|
dicDataBase.Add(item.ClrType.Name, objsource);
|
||||||
|
}
|
||||||
|
await _db.Database.CloseConnectionAsync();
|
||||||
|
return dicDataBase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user