更新域名

fix issue #I3ZCIX 可以控制流程审批过程中表单项是否可写
This commit is contained in:
yubaolee 2021-07-22 19:33:55 +08:00
parent 154583889a
commit c7acca904a
38 changed files with 131 additions and 63 deletions

View File

@ -1,5 +1,5 @@
// <copyright file="ImgHelper.cs" company="openauth.me">
// Copyright (c) 2019 openauth.me. All rights reserved.
// <copyright file="ImgHelper.cs" company="openauth.net.cn">
// Copyright (c) 2019 openauth.net.cn. All rights reserved.
// </copyright>
// <author>www.cnblogs.com/yubaolee</author>
// <summary>生成缩略图</summary>

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-05-2018
// ***********************************************************************
// <copyright file="AuthContextFactory.cs" company="OpenAuth.App">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 用户权限策略工厂

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-04-2018
// ***********************************************************************
// <copyright file="NormalAuthStrategy.cs" company="OpenAuth.App">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 普通用户授权策略

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-05-2018
// ***********************************************************************
// <copyright file="SystemAuthStrategy.cs" company="OpenAuth.App">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 超级管理员授权策略

View File

@ -18,7 +18,7 @@ namespace OpenAuth.App
/// <summary>
/// 用于事务操作
/// <para>使用详见http://doc.openauth.me/core/unitwork.html</para>
/// <para>使用详见http://doc.openauth.net.cn/core/unitwork.html</para>
/// </summary>
protected IUnitWork<TDbContext> UnitWork;

View File

@ -0,0 +1,10 @@
using OpenAuth.Repository.Domain;
namespace OpenAuth.App.Response
{
public class CategoryTypeResp : CategoryType
{
public string ParentId { get; set; }
}
}

View File

@ -1,5 +1,5 @@
// <copyright file="FlowLine.cs" company="openauth.me">
// Copyright (c) 2019 openauth.me. All rights reserved.
// <copyright file="FlowLine.cs" company="openauth.net.cn">
// Copyright (c) 2019 openauth.net.cn. All rights reserved.
// </copyright>
// <author>www.cnblogs.com/yubaolee</author>
// <date>2019-03-05</date>

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-19-2018
// ***********************************************************************
// <copyright file="FlowRuntime.cs" company="OpenAuth.App">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 一个正在运行中的流程实例

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-19-2018
// ***********************************************************************
// <copyright file="FlowInstanceApp.cs" company="OpenAuth.App">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************

View File

@ -7,11 +7,18 @@ namespace OpenAuth.App.Response
/// <summary>
/// 预览表单数据
/// </summary>
/// <value>The FRM data HTML.</value>
public string FrmPreviewHtml
{
get { return FormUtil.Preview(this); }
}
/// <summary>
/// 预览表单数据表单项包含读写控制权限)
/// </summary>
public string FrmHtml
{
get { return FormUtil.GetHtml(this.FrmContentData, this.FrmContentParse, this.FrmData, "",this.CanWriteFormItemIds); }
}
/// <summary>
/// 下个节点的执行权限方式

View File

@ -1,3 +1,4 @@
using System.Linq;
using System.Text;
using Infrastructure;
using Newtonsoft.Json.Linq;
@ -6,9 +7,12 @@ using OpenAuth.Repository.Domain;
namespace OpenAuth.App
{
public class FormUtil {
public class FormUtil
{
private static string READONLY = "view";
public static string GetHtml(string contentData, string contentParse,string frmData, string action)
public static string GetHtml(string contentData, string contentParse,string frmData, string action,params string[] canWriteFormItemIds)
{
if (string.IsNullOrEmpty(contentData))
{
@ -30,6 +34,11 @@ namespace OpenAuth.App
else
name = json.GetValue("name").ToString();
if (canWriteFormItemIds != null && canWriteFormItemIds.Length > 0)
{
action = canWriteFormItemIds.Contains(name) ? "":READONLY;
}
string tempHtml = "";
switch (leipiplugins)
{
@ -79,7 +88,7 @@ namespace OpenAuth.App
return string.Empty;
}
return GetHtml(form.ContentData, form.ContentParse,null, "");
return GetHtml(form.ContentData, form.ContentParse,form.FrmData, "");
}
@ -98,7 +107,7 @@ namespace OpenAuth.App
}
return GetHtml(flowInstance.FrmContentData, flowInstance.FrmContentParse,
flowInstance.FrmData, "view");
flowInstance.FrmData, READONLY);
}
//text
@ -118,7 +127,7 @@ namespace OpenAuth.App
value = item.GetValue("value") == null ? "" : item.GetValue("value").ToString();
string style =item.GetValue("style") == null ? "" : item.GetValue("style").ToString();
string tempHtml = string.Format(temp, value, name, style);
if("view"==action)
if(READONLY==action)
return string.Format("<label style=\"{0}\">{1}</label>",style,value);
return tempHtml;
}
@ -147,7 +156,7 @@ namespace OpenAuth.App
string temp_html = string.Format(temp, name, name, style, script, value);
if("view"==action)
if(READONLY==action)
return string.Format("<label style=\"{0}\">{1}</label>", style, value);
return temp_html;
}
@ -186,7 +195,7 @@ namespace OpenAuth.App
temp_html += string.Format(temp, name, cvalue, Ischecked, cvalue);
}
return "view"==action ? string.Format("<label style=\"{0}\">{1}</label>", "", value) : temp_html;
return READONLY==action ? string.Format("<label style=\"{0}\">{1}</label>", "", value) : temp_html;
}
//Checkboxs
@ -229,7 +238,7 @@ namespace OpenAuth.App
}
return "view" == action ? string.Format("<label style=\"{0}\">{1}</label>", "", view_value) : temp_html;
return READONLY == action ? string.Format("<label style=\"{0}\">{1}</label>", "", view_value) : temp_html;
}
//Select(比较特殊)
@ -254,7 +263,7 @@ namespace OpenAuth.App
content = content.Replace(option, selected); //把选项替换成选中项
}
return "view" == action ? string.Format("<label style=\"{0}\">{1}</label>", "", value) : content;
return READONLY == action ? string.Format("<label style=\"{0}\">{1}</label>", "", value) : content;
}
@ -295,7 +304,7 @@ namespace OpenAuth.App
temp = orgType + "二维码 <input type=\"text\" name=\"{0}\" value=\"{1}\"/>";
temp_html = string.Format(temp, name, value);
}
else if ("view"==action)
else if (READONLY==action)
{
//可以采用 http://qrcode.leipi.org/
@ -363,7 +372,7 @@ namespace OpenAuth.App
// {
// if (i == tdCount - 1)
// listTitle.set(i, "操作");
// if ("view"==(action) && i == tdCount - 1) continue;//如果是查看最后一列不显示
// if (ACTION==(action) && i == tdCount - 1) continue;//如果是查看最后一列不显示
// trTitle += string.Format("<th>{0}</th>", listTitle.get(i));
// }
// trTitle = "<tr>" + trTitle + "</tr>";
@ -419,7 +428,7 @@ namespace OpenAuth.App
// if (i == tdCount - 1)//最后一列不显示
// {
// if ("view"==(action)) continue;
// if (ACTION==(action)) continue;
// //tr += "<td></td>";
// else
// tr += "<td><a href=\"javascript:void(0);\" class=\"delrow \">删除</a></td>";
@ -427,7 +436,7 @@ namespace OpenAuth.App
// }
// else
// {
// if ("view"==(action))
// if (ACTION==(action))
// {
// tr += string.Format("<td>{0}</td>", tdValue);
// }
@ -449,7 +458,7 @@ namespace OpenAuth.App
// //region
// if (sum != "")
// {
// if ("view"==(action))
// if (ACTION==(action))
// tdSum += string.Format("<td>合计value{0}{1}</td>", i, listUnit.get(i));
// else
// tdSum += string.Format("<td>合计:<input class=\"input-small\" type=\"text\" value=\"value{0}\" name=\"{1}[total]\" {2}\">{3}</td>", i, tdname, sum, listUnit.get(i));
@ -476,7 +485,7 @@ namespace OpenAuth.App
// tdSum = string.Format("<tbody class=\"sum\"><tr>{0}</tr></tbody>", tdSum);
// }
// }
// if ("view"==(action))
// if (ACTION==(action))
// theader = string.Format(theader, tdCount, title, "", trTitle);
// else
// theader = string.Format(theader, tdCount, title, btnAdd, trTitle);

View File

@ -48,6 +48,11 @@ namespace OpenAuth.App.Response
/// 表单原html模板未经处理的
/// </summary>
public string Content { get; set; }
/// <summary>
/// 表单的数据
/// </summary>
public string FrmData { get; set; }
/// <summary>
/// 排序码
@ -69,5 +74,15 @@ namespace OpenAuth.App.Response
get { return FormUtil.GetHtml(this); }
}
public string[] CanWriteFormItemIds { get; set; }
/// <summary>
/// 用户显示(表单项包含读写控制权限)
/// </summary>
public string HtmlWithCanWriteIds
{
get { return FormUtil.GetHtml(this.ContentData, this.ContentParse, this.FrmData,"",this.CanWriteFormItemIds); }
}
}
}

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-05-2018
// ***********************************************************************
// <copyright file="IAuthStrategy.cs" company="OpenAuth.App">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 授权策略接口

View File

@ -43,7 +43,7 @@ namespace OpenAuth.IdentityServer
var host = "http://localhost";
if (isProduction)
{
host = "http://demo.openauth.me"; //切换为自己的服务器信息
host = "http://demo.openauth.net.cn"; //切换为自己的服务器信息
}
return new[]
{

View File

@ -49,8 +49,8 @@ namespace OpenAuth.IdentityServer
// {
// origins = new []
// {
// "http://demo.openauth.me:1803",
// "http://demo.openauth.me:52789"
// "http://demo.openauth.net.cn:1803",
// "http://demo.openauth.net.cn:52789"
// };
// }
// services.AddCors(option=>option.AddPolicy("cors", policy =>

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Infrastructure;
using Microsoft.AspNetCore.Mvc;
@ -87,8 +88,18 @@ namespace OpenAuth.Mvc.Controllers
/// <returns></returns>
public string AllTypes()
{
var data = _categoryTypeApp.AllTypes();
return JsonHelper.Instance.Serialize(data);
var resp = new Response<List<CategoryTypeResp>>();
try
{
resp.Result = _categoryTypeApp.AllTypes().MapToList<CategoryTypeResp>();
}
catch (Exception e)
{
resp.Code = 500;
resp.Message = e.Message;
}
return JsonHelper.Instance.Serialize(resp);
}
}

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-24-2018
// ***********************************************************************
// <copyright file="ErrorController.cs" company="OpenAuth.Mvc">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 异常处理页面

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-04-2018
// ***********************************************************************
// <copyright file="UserSessionController.cs" company="OpenAuth.Mvc">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 获取登录用户的全部信息

View File

@ -7,7 +7,7 @@
// Last Modified On : 07-02-2018
// ***********************************************************************
// <copyright file="UserSessionControllerTest.cs" company="OpenAuth.Mvc">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 测试加载用户菜单

View File

@ -24,7 +24,7 @@
<div class="layui-form-item">
<label class="layui-form-label">类型标识</label>
<div class="layui-input-block">
<input type="text" name="Id" v-model="tmp.Id" required lay-verify="required"
<input type="text" name="Id" v-model="tmp.Id"
placeholder="请输入类型标识" autocomplete="off" class="layui-input">
</div>
</div>
@ -63,4 +63,4 @@
</div>
<script type="text/javascript" src="/layui/layui.js"></script>
<script type="text/javascript" src="/userJs/categories.js?v=1.5.1"></script>
<script type="text/javascript" src="/userJs/categories.js?v=3.2"></script>

View File

@ -79,9 +79,9 @@
</p>
<p>
<a href="https://gitee.com/yubaolee/OpenAuth.Core" target="_blank" class="layui-btn layui-btn-xs layui-btn-danger">项目地址</a>
<a class="layui-btn layui-btn-xs" target="_blank" href="http://doc.openauth.me">在线文档</a>
<a class="layui-btn layui-btn-xs layui-btn-danger" target="_blank" href="http://demo.openauth.me:1803">企业版/高级版入口</a>
<a class="layui-btn layui-btn-xs layui-btn-danger" target="_blank" href="http://demo.openauth.me:1804">企业版H5入口请使用移动模式或者直接手机查看</a>
<a class="layui-btn layui-btn-xs" target="_blank" href="http://doc.openauth.net.cn">在线文档</a>
<a class="layui-btn layui-btn-xs layui-btn-danger" target="_blank" href="http://demo.openauth.net.cn:1803">企业版/高级版入口</a>
<a class="layui-btn layui-btn-xs layui-btn-danger" target="_blank" href="http://demo.openauth.net.cn:1804">企业版H5入口请使用移动模式或者直接手机查看</a>
<span style="color: #f00;">注【本框架遵循LGPL开源协议企业单位如商用请联系作者授权谢谢】</span>
</p>
<p>技术交流QQ群484498493【已满】 &nbsp; &nbsp; 626433139【已满】 &nbsp;&nbsp; 566344079</p>
@ -94,7 +94,7 @@
<p>* 【新增】增加在swagger界面查看接口调用时间及SQL执行时间</p>
<p>
* 【新增】支持同时配置多个类型数据库的连接字符串:
详见:<a href="http://doc.openauth.me/core/multidbs.html" target="_blank" class="layui-btn layui-btn-xs layui-btn-danger">http://doc.openauth.me/core/multidbs.html</a>
详见:<a href="http://doc.openauth.net.cn/core/multidbs.html" target="_blank" class="layui-btn layui-btn-xs layui-btn-danger">http://doc.openauth.net.cn/core/multidbs.html</a>
</p>
<p>* 【新增】增加swagger接口分组</p>
<p>* 【新增】增加流程召回功能</p>
@ -130,7 +130,7 @@
<p>* 【优化】流程处理页面展示</p>
<p>* 【优化】流程支持角色审批</p>
<p>* 【新增】集成IdentityServer4实现基于OAuth2的登录体系</p>
<p>* 【新增】建立三方对接规范,已有系统可以无缝对接流程引擎,请参考官方<a href="http://doc.openauth.me/thirdparty" target="_top">对接说明</a></p>
<p>* 【新增】建立三方对接规范,已有系统可以无缝对接流程引擎,请参考官方<a href="http://doc.openauth.net.cn/thirdparty" target="_top">对接说明</a></p>
</div>
<div class="layui-elem-quote layui-quote-nm">

View File

@ -10,7 +10,7 @@
"OpenAuthDBContext": "server=127.0.0.1;user id=root;database=openauthdb;password=000000" //my sql
},
"AppSetting": {
"IdentityServerUrl": "http://demo.openauth.me:12796", //IdentityServerOAuth
"IdentityServerUrl": "http://demo.openauth.net.cn:12796", //IdentityServerOAuth
// "IdentityServerUrl": "", //IdentityServerOAuth
"SSOPassport": "http://localhost:52789",
"Version": "demo",

View File

@ -78,6 +78,11 @@ layui.config({
},
mounted(){
form.render();
var _this = this;
layui.droptree("/Categories/AllTypes", "#TypeName", "#TypeId", false,function (ids, names) {
_this.tmp.TypeName = ids;
_this.tmp.TypeId = names;
});
}
});
}else{

View File

@ -95,7 +95,7 @@
if (data.Result.FrmType == 0) {
$("#frmPreview").html(data.Result.Html);
} else {
$("#frmPreview").html('复杂表单暂时只能在<a href="http://demo.openauth.me:1803">企业版</a>查看,开源版预计会在以后的开源版本中发布');
$("#frmPreview").html('复杂表单暂时只能在<a href="http://demo.openauth.net.cn:1803">企业版</a>查看,开源版预计会在以后的开源版本中发布');
}
}
});

View File

@ -47,7 +47,7 @@
if (data.Result.FrmType == 0) {
_this.frmPreview = data.Result.Html
} else {
_this.frmPreview = '复杂表单暂时只能在<a href="http://demo.openauth.me:1803">企业版</a>查看,开源版预计会在以后的开源版本中发布'
_this.frmPreview = '复杂表单暂时只能在<a href="http://demo.openauth.net.cn:1803">企业版</a>查看,开源版预计会在以后的开源版本中发布'
}
});
}

View File

@ -58,7 +58,7 @@
if (data.Result.FrmType == 0) {
$("#frmPreview").html(data.Result.Html);
} else {
$("#frmPreview").html("复杂表单暂时只能在<a href='http://demo.openauth.me:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
$("#frmPreview").html("复杂表单暂时只能在<a href='http://demo.openauth.net.cn:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
}
});
});

View File

@ -51,7 +51,7 @@
if (data.Result.FrmType == 0) {
$("#frmPreview").html(data.Result.FrmPreviewHtml);
} else {
$("#frmPreview").html("复杂表单暂时只能在<a href='http://demo.openauth.me:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
$("#frmPreview").html("复杂表单暂时只能在<a href='http://demo.openauth.net.cn:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
}
flowDesignPanel.reinitSize($(window).width() - 30, $(window).height() - 120);

View File

@ -278,7 +278,7 @@
if (obj.FrmType === 0) {
ue.setContent(obj.Content);
} else {
ue.setContent("复杂表单暂时只能在<a href='http://demo.openauth.me:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
ue.setContent("复杂表单暂时只能在<a href='http://demo.openauth.net.cn:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
}
}, 500);
});

View File

@ -10,7 +10,7 @@
if (data.Result.FrmType == 0) {
$("#content").html(data.Result.Html);
} else {
$("#content").html("复杂表单暂时只能在<a href='http://demo.openauth.me:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
$("#content").html("复杂表单暂时只能在<a href='http://demo.openauth.net.cn:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
}
});

View File

@ -26,7 +26,7 @@
if (data.Result.FrmType == 0) {
$("#frmPreview").html(data.Result.FrmPreviewHtml);
} else {
$("#frmPreview").html("复杂表单暂时只能在<a href='http://demo.openauth.me:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
$("#frmPreview").html("复杂表单暂时只能在<a href='http://demo.openauth.net.cn:1803'>企业版</a>查看,开源版预计会在以后的开源版本中发布");
}
//让层自适应iframe

View File

@ -1,5 +1,5 @@
// <copyright file="UploadFile.cs" company="openauth.me">
// Copyright (c) 2019 openauth.me. All rights reserved.
// <copyright file="UploadFile.cs" company="openauth.net.cn">
// Copyright (c) 2019 openauth.net.cn. All rights reserved.
// </copyright>
// <author>www.cnblogs.com/yubaolee</author>
// <date>2019-03-07</date>

View File

@ -22,7 +22,7 @@ namespace OpenAuth.Repository.Interface
{
/// <summary>
/// 工作单元接口
/// 使用详见http://doc.openauth.me/core/unitwork.html
/// 使用详见http://doc.openauth.net.cn/core/unitwork.html
/// <para> 适合在一下情况使用:</para>
/// <para>1 在同一事务中进行多表操作</para>
/// <para>2 需要多表联合查询</para>
@ -90,7 +90,7 @@ namespace OpenAuth.Repository.Interface
void Save();
/// <summary>
/// 该方法不支持EF自带的事务,需要ExecuteWithTransaction配合才能实现事务控制,详见http://doc.openauth.me/core/unitwork.html
/// 该方法不支持EF自带的事务,需要ExecuteWithTransaction配合才能实现事务控制,详见http://doc.openauth.net.cn/core/unitwork.html
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>

View File

@ -1,5 +1,5 @@
// <copyright file="FlowInstancesController.cs" company="openauth.me">
// Copyright (c) 2019 openauth.me. All rights reserved.
// <copyright file="FlowInstancesController.cs" company="openauth.net.cn">
// Copyright (c) 2019 openauth.net.cn. All rights reserved.
// </copyright>
// <author>www.cnblogs.com/yubaolee</author>
// <date>2018-09-06</date>

View File

@ -19,13 +19,24 @@ namespace OpenAuth.WebApi.Controllers
{
private readonly FormApp _app;
/// <summary>
/// 获取表单
/// </summary>
/// <param name="id">表单ID</param>
/// <param name="canWriteFormItemIds">针对动态表单项读写控制</param>
/// <returns></returns>
[HttpGet]
public Response<FormResp> Get(string id)
public Response<FormResp> Get(string id, string canWriteFormItemIds)
{
var result = new Response<FormResp>();
try
{
result.Result = _app.FindSingle(id);
if (!string.IsNullOrEmpty(canWriteFormItemIds))
{
result.Result.CanWriteFormItemIds = JsonHelper.Instance.Deserialize<string[]>(canWriteFormItemIds);
}
}
catch (Exception ex)
{

View File

@ -1,5 +1,5 @@
// <copyright file="GlobalHttpHeaderOperationFilter.cs" company="openauth.me">
// Copyright (c) 2019 openauth.me. All rights reserved.
// <copyright file="GlobalHttpHeaderOperationFilter.cs" company="openauth.net.cn">
// Copyright (c) 2019 openauth.net.cn. All rights reserved.
// </copyright>
// <author>www.cnblogs.com/yubaolee</author>
// <date>2019-01-05</date>

View File

@ -155,8 +155,8 @@ namespace OpenAuth.WebApi
// {
// origins = new []
// {
// "http://demo.openauth.me:1803",
// "http://demo.openauth.me:52789"
// "http://demo.openauth.net.cn:1803",
// "http://demo.openauth.net.cn:52789"
// };
// }
// services.AddCors(option=>option.AddPolicy("cors", policy =>

View File

@ -1,5 +1,5 @@
// <copyright file="UserSessionControllerTest.cs" company="OpenAuth.Mvc">
// Copyright (c) http://www.openauth.me. All rights reserved.
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 测试加载用户菜单

View File

@ -13,7 +13,7 @@
},
"AppSetting": {
"IdentityServerUrl": "", //IdentityServerOAuth
//"IdentityServerUrl": "http://demo.openauth.me:12796", //IdentityServerOAuth
//"IdentityServerUrl": "http://demo.openauth.net.cn:12796", //IdentityServerOAuth
"DbTypes": {
"OpenAuthDBContext":"MySql" //SqlServerMySqlOracle
},