Merge branch 'bestflow' of https://git.oschina.net/yubaolee/OpenAuth.Net into bestflow

This commit is contained in:
四少爷
2017-04-18 09:54:34 +08:00
34 changed files with 2743 additions and 2517 deletions

View File

@@ -129,7 +129,7 @@ namespace OpenAuth.App
var sameLevels = _repository.Find(o => o.ParentId == org.ParentId && o.Id != org.Id); var sameLevels = _repository.Find(o => o.ParentId == org.ParentId && o.Id != org.Id);
foreach (var obj in sameLevels) foreach (var obj in sameLevels)
{ {
int objCascadeId = int.Parse(obj.CascadeId.Split('.').Last()); int objCascadeId = int.Parse(obj.CascadeId.TrimEnd('.').Split('.').Last());
if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1; if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1;
} }
@@ -138,7 +138,7 @@ namespace OpenAuth.App
var parentOrg = _repository.FindSingle(o => o.Id == org.ParentId); var parentOrg = _repository.FindSingle(o => o.Id == org.ParentId);
if (parentOrg != null) if (parentOrg != null)
{ {
cascadeId = parentOrg.CascadeId + "." + currentCascadeId; cascadeId = parentOrg.CascadeId + currentCascadeId +".";
} }
else else
{ {
@@ -147,7 +147,7 @@ namespace OpenAuth.App
} }
else else
{ {
cascadeId = "0." + currentCascadeId; cascadeId = "0." + currentCascadeId +".";
} }
org.CascadeId = cascadeId; org.CascadeId = cascadeId;

File diff suppressed because it is too large Load Diff

View File

@@ -131,7 +131,7 @@ namespace OpenAuth.App
var sameLevels = _repository.Find(o => o.ParentId == org.ParentId && o.Id != org.Id); var sameLevels = _repository.Find(o => o.ParentId == org.ParentId && o.Id != org.Id);
foreach (var obj in sameLevels) foreach (var obj in sameLevels)
{ {
int objCascadeId = int.Parse(obj.CascadeId.Split('.').Last()); int objCascadeId = int.Parse(obj.CascadeId.TrimEnd('.').Split('.').Last());
if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1; if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1;
} }
@@ -140,7 +140,7 @@ namespace OpenAuth.App
var parentOrg = _repository.FindSingle(o => o.Id == org.ParentId); var parentOrg = _repository.FindSingle(o => o.Id == org.ParentId);
if (parentOrg != null) if (parentOrg != null)
{ {
cascadeId = parentOrg.CascadeId + "." + currentCascadeId; cascadeId = parentOrg.CascadeId + currentCascadeId+".";
org.ParentName = parentOrg.Name; org.ParentName = parentOrg.Name;
} }
else else
@@ -150,7 +150,7 @@ namespace OpenAuth.App
} }
else else
{ {
cascadeId = "0." + currentCascadeId; cascadeId = "0." + currentCascadeId+".";
org.ParentName = "根节点"; org.ParentName = "根节点";
} }

View File

@@ -1,30 +1,30 @@
using System; using System;
namespace OpenAuth.App.SSO namespace OpenAuth.App.SSO
{ {
public class PassportLoginRequest public class PassportLoginRequest
{ {
public string UserName { get; set; } public string UserName { get; set; }
public string Password { get; set; } public string Password { get; set; }
public string AppKey { get; set; } public string AppKey { get; set; }
public void Trim() public void Trim()
{ {
if (string.IsNullOrEmpty(UserName)) if (string.IsNullOrEmpty(UserName))
{ {
throw new Exception("用户名不能为空"); throw new Exception("用户名不能为空");
} }
if (string.IsNullOrEmpty(Password)) if (string.IsNullOrEmpty(Password))
{ {
throw new Exception("密码不能为空"); throw new Exception("密码不能为空");
} }
UserName = UserName.Trim(); UserName = UserName.Trim();
Password = Password.Trim(); Password = Password.Trim();
if(!string.IsNullOrEmpty(AppKey)) AppKey = AppKey.Trim(); if(!string.IsNullOrEmpty(AppKey)) AppKey = AppKey.Trim();
} }
} }
} }

View File

@@ -1,78 +1,78 @@
using System; using System;
using System.Web; using System.Web;
using System.Web.Mvc; using System.Web.Mvc;
using Infrastructure; using Infrastructure;
using Infrastructure.Cache; using Infrastructure.Cache;
using OpenAuth.Domain; using OpenAuth.Domain;
namespace OpenAuth.App.SSO namespace OpenAuth.App.SSO
{ {
public class SSOAuthUtil public class SSOAuthUtil
{ {
public static LoginResult Parse(PassportLoginRequest model) public static LoginResult Parse(PassportLoginRequest model)
{ {
var result = new LoginResult(); var result = new LoginResult();
try try
{ {
model.Trim(); model.Trim();
//<2F><>ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD>Ϣ //<2F><>ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD>Ϣ
var appInfo = new AppInfoService().Get(model.AppKey); var appInfo = new AppInfoService().Get(model.AppKey);
if (appInfo == null) if (appInfo == null)
{ {
throw new Exception(<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>"); throw new Exception(<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>");
} }
//<2F><>ȡ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ //<2F><>ȡ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ
User userInfo = null; User userInfo = null;
if (model.UserName == "System") if (model.UserName == "System")
{ {
userInfo = new User userInfo = new User
{ {
Id = Guid.Empty, Id = Guid.Empty,
Account = "System", Account = "System",
Name ="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա", Name ="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա",
Password = "123456" Password = "123456"
}; };
} }
else else
{ {
var usermanager = (UserManagerApp)DependencyResolver.Current.GetService(typeof(UserManagerApp)); var usermanager = (UserManagerApp)DependencyResolver.Current.GetService(typeof(UserManagerApp));
userInfo = usermanager.Get(model.UserName); userInfo = usermanager.Get(model.UserName);
} }
if (userInfo == null) if (userInfo == null)
{ {
throw new Exception("<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); throw new Exception("<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} }
if (userInfo.Password != model.Password) if (userInfo.Password != model.Password)
{ {
throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} }
var currentSession = new UserAuthSession var currentSession = new UserAuthSession
{ {
UserName = model.UserName, UserName = model.UserName,
Token = Guid.NewGuid().ToString().GetHashCode().ToString("x"), Token = Guid.NewGuid().ToString().GetHashCode().ToString("x"),
AppKey = model.AppKey, AppKey = model.AppKey,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
IpAddress = HttpContext.Current.Request.UserHostAddress IpAddress = HttpContext.Current.Request.UserHostAddress
}; };
//<2F><><EFBFBD><EFBFBD>Session //<2F><><EFBFBD><EFBFBD>Session
new ObjCacheProvider<UserAuthSession>().Create(currentSession.Token, currentSession, DateTime.Now.AddDays(10)); new ObjCacheProvider<UserAuthSession>().Create(currentSession.Token, currentSession, DateTime.Now.AddDays(10));
result.Success = true; result.Success = true;
result.ReturnUrl = appInfo.ReturnUrl; result.ReturnUrl = appInfo.ReturnUrl;
result.Token = currentSession.Token; result.Token = currentSession.Token;
} }
catch (Exception ex) catch (Exception ex)
{ {
result.Success = false; result.Success = false;
result.ErrorMsg = ex.Message; result.ErrorMsg = ex.Message;
} }
return result; return result;
} }
} }
} }

View File

@@ -114,6 +114,8 @@ namespace OpenAuth.App
public void AddOrUpdate(UserView view) public void AddOrUpdate(UserView view)
{ {
if (string.IsNullOrEmpty(view.OrganizationIds))
throw new Exception("请为用户分配机构");
User user = view; User user = view;
if (user.Id == Guid.Empty) if (user.Id == Guid.Empty)
{ {

File diff suppressed because it is too large Load Diff

View File

@@ -152,7 +152,7 @@ namespace OpenAuth.Domain.Service
var sameLevels = _repository.Find(o => o.ParentId == module.ParentId && o.Id != module.Id); var sameLevels = _repository.Find(o => o.ParentId == module.ParentId && o.Id != module.Id);
foreach (var obj in sameLevels) foreach (var obj in sameLevels)
{ {
int objCascadeId = int.Parse(obj.CascadeId.Split('.').Last()); int objCascadeId = int.Parse(obj.CascadeId.TrimEnd('.').Split('.').Last());
if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1; if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1;
} }
@@ -161,7 +161,7 @@ namespace OpenAuth.Domain.Service
var parentOrg = _repository.FindSingle(o => o.Id == module.ParentId); var parentOrg = _repository.FindSingle(o => o.Id == module.ParentId);
if (parentOrg != null) if (parentOrg != null)
{ {
cascadeId = parentOrg.CascadeId + "." + currentCascadeId; cascadeId = parentOrg.CascadeId + currentCascadeId +".";
module.ParentName = parentOrg.Name; module.ParentName = parentOrg.Name;
} }
else else
@@ -171,7 +171,7 @@ namespace OpenAuth.Domain.Service
} }
else else
{ {
cascadeId = "0." + currentCascadeId; cascadeId = "0." + currentCascadeId +".";
module.ParentName = "根节点"; module.ParentName = "根节点";
} }

View File

@@ -21,14 +21,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
/// </summary> /// </summary>
public class FlowDesignController :BaseController public class FlowDesignController :BaseController
{ {
private WFSchemeService wfFlowInfoBLL; public WFSchemeService WfFlowInfoBll { get; set; }
private UserManagerApp userBLL;
public FlowDesignController()
{
wfFlowInfoBLL = AutofacExt.GetFromFac<WFSchemeService>();
userBLL = AutofacExt.GetFromFac<UserManagerApp>();
}
#region #region
/// <summary> /// <summary>
@@ -100,8 +93,8 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetFormJson(Guid keyValue) public ActionResult GetFormJson(Guid keyValue)
{ {
var schemeinfo = wfFlowInfoBLL.GetEntity(keyValue); var schemeinfo = WfFlowInfoBll.GetEntity(keyValue);
var schemecontent = wfFlowInfoBLL.GetSchemeEntity(schemeinfo.Id, schemeinfo.SchemeVersion); var schemecontent = WfFlowInfoBll.GetSchemeEntity(schemeinfo.Id, schemeinfo.SchemeVersion);
var JsonData = new var JsonData = new
{ {
schemeinfo = schemeinfo, schemeinfo = schemeinfo,
@@ -118,7 +111,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetSchemeContentJson(Guid keyValue, string SchemeVersion) public ActionResult GetSchemeContentJson(Guid keyValue, string SchemeVersion)
{ {
var schemecontent = wfFlowInfoBLL.GetSchemeEntity(keyValue, SchemeVersion); var schemecontent = WfFlowInfoBll.GetSchemeEntity(keyValue, SchemeVersion);
return Content(schemecontent.ToJson()); return Content(schemecontent.ToJson());
} }
#endregion #endregion
@@ -132,7 +125,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpPost] [HttpPost]
public string RemoveForm(Guid[] ids) public string RemoveForm(Guid[] ids)
{ {
wfFlowInfoBLL.RemoveForm(ids); WfFlowInfoBll.RemoveForm(ids);
return Result.ToJson(); return Result.ToJson();
} }
/// <summary> /// <summary>
@@ -146,7 +139,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
{ {
WFSchemeInfo entyity = InfoEntity.ToObject<WFSchemeInfo>(); WFSchemeInfo entyity = InfoEntity.ToObject<WFSchemeInfo>();
WFSchemeContent contententity = ContentEntity.ToObject<WFSchemeContent>(); WFSchemeContent contententity = ContentEntity.ToObject<WFSchemeContent>();
wfFlowInfoBLL.SaveForm(keyValue, entyity, contententity); WfFlowInfoBll.SaveForm(keyValue, entyity, contententity);
return Result.ToJson(); return Result.ToJson();
} }
/// <summary> /// <summary>
@@ -159,13 +152,13 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
public ActionResult SubmitUpdateState(string keyValue, int State) public ActionResult SubmitUpdateState(string keyValue, int State)
{ {
wfFlowInfoBLL.UpdateState(keyValue, State); WfFlowInfoBll.UpdateState(keyValue, State);
return Content("操作成功。"); return Content("操作成功。");
} }
public string Load(int pageCurrent = 1, int pageSize = 30) public string Load(int pageCurrent = 1, int pageSize = 30)
{ {
return JsonHelper.Instance.Serialize(wfFlowInfoBLL.Load(pageCurrent, pageSize)); return JsonHelper.Instance.Serialize(WfFlowInfoBll.Load(pageCurrent, pageSize));
} }
#endregion #endregion

View File

@@ -14,12 +14,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
/// </summary> /// </summary>
public class FlowInstancesController : BaseController public class FlowInstancesController : BaseController
{ {
private WFProcessInstanceService _app; public WFProcessInstanceService App { get; set; }
public FlowInstancesController()
{
_app = AutofacExt.GetFromFac<WFProcessInstanceService>();
}
#region #region
@@ -115,7 +110,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
WFProcessInstance wfProcessInstanceEntity = wfProcessInstanceJson.ToObject<WFProcessInstance>(); WFProcessInstance wfProcessInstanceEntity = wfProcessInstanceJson.ToObject<WFProcessInstance>();
wfProcessInstanceEntity.Id = Guid.Empty; wfProcessInstanceEntity.Id = Guid.Empty;
_app.CreateInstance(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData); App.CreateInstance(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData);
return Result.ToJson(); return Result.ToJson();
} }
@@ -129,7 +124,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpPost] [HttpPost]
public string VerificationProcess(Guid processId, string verificationData) public string VerificationProcess(Guid processId, string verificationData)
{ {
_app.VerificationProcess(processId, verificationData); App.VerificationProcess(processId, verificationData);
return Result.ToJson(); return Result.ToJson();
} }
@@ -142,7 +137,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
{ {
foreach (var id in ids) foreach (var id in ids)
{ {
_app.DeleteProcess(id); App.DeleteProcess(id);
} }
return Result.ToJson(); return Result.ToJson();
} }
@@ -166,7 +161,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetProcessSchemeJson(Guid keyValue) public ActionResult GetProcessSchemeJson(Guid keyValue)
{ {
var data = _app.GetProcessSchemeEntity(keyValue); var data = App.GetProcessSchemeEntity(keyValue);
return Content(data.ToJson()); return Content(data.ToJson());
} }
@@ -178,7 +173,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetProcessSchemeEntityByUserId(Guid keyValue) public ActionResult GetProcessSchemeEntityByUserId(Guid keyValue)
{ {
var data = _app.GetProcessSchemeByUserId(keyValue); var data = App.GetProcessSchemeByUserId(keyValue);
return Content(data.ToJson()); return Content(data.ToJson());
} }
@@ -191,7 +186,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetProcessSchemeEntityByNodeId(Guid keyValue, string nodeId) public ActionResult GetProcessSchemeEntityByNodeId(Guid keyValue, string nodeId)
{ {
var data = _app.GetProcessSchemeEntityByNodeId(keyValue, nodeId); var data = App.GetProcessSchemeEntityByNodeId(keyValue, nodeId);
return Content(data.ToJson()); return Content(data.ToJson());
} }
@@ -203,8 +198,8 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetProcessInfoJson(Guid keyValue) public ActionResult GetProcessInfoJson(Guid keyValue)
{ {
var processInstance = _app.GetProcessInstanceEntity(keyValue); var processInstance = App.GetProcessInstanceEntity(keyValue);
var processScheme = _app.GetProcessSchemeEntity(processInstance.ProcessSchemeId); var processScheme = App.GetProcessSchemeEntity(processInstance.ProcessSchemeId);
var JsonData = new var JsonData = new
{ {
processInstance = processInstance, processInstance = processInstance,
@@ -221,13 +216,13 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetProcessInstanceJson(Guid keyValue) public ActionResult GetProcessInstanceJson(Guid keyValue)
{ {
var processInstance = _app.GetProcessInstanceEntity(keyValue); var processInstance = App.GetProcessInstanceEntity(keyValue);
return Content(processInstance.ToJson()); return Content(processInstance.ToJson());
} }
public string Load(string type, int pageCurrent = 1, int pageSize = 30) public string Load(string type, int pageCurrent = 1, int pageSize = 30)
{ {
return JsonHelper.Instance.Serialize(_app.Load(AuthUtil.GetCurrentUser().User.Id.ToString(), type, pageCurrent, pageSize)); return JsonHelper.Instance.Serialize(App.Load(AuthUtil.GetCurrentUser().User.Id.ToString(), type, pageCurrent, pageSize));
} }
#endregion () #endregion ()

View File

@@ -13,12 +13,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
public class FormDesignController : BaseController public class FormDesignController : BaseController
{ {
private readonly WFFormService _wfFrmMainBll; public WFFormService WfFrmMainBll { get; set; }
public FormDesignController()
{
_wfFrmMainBll = AutofacExt.GetFromFac<WFFormService>();
}
#region #region
/// <summary> /// <summary>
@@ -55,7 +50,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
public string Load(int pageCurrent = 1, int pageSize = 30) public string Load(int pageCurrent = 1, int pageSize = 30)
{ {
return JsonHelper.Instance.Serialize(_wfFrmMainBll.Load(pageCurrent, pageSize)); return JsonHelper.Instance.Serialize(WfFrmMainBll.Load(pageCurrent, pageSize));
} }
/// <summary> /// <summary>
@@ -66,7 +61,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetTreeJson() public ActionResult GetTreeJson()
{ {
var data = _wfFrmMainBll.GetAllList(); var data = WfFrmMainBll.GetAllList();
var treeList = new List<TreeEntity>(); var treeList = new List<TreeEntity>();
foreach (var item in data) foreach (var item in data)
{ {
@@ -95,7 +90,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetFormJson(Guid keyValue) public ActionResult GetFormJson(Guid keyValue)
{ {
var data = _wfFrmMainBll.GetForm(keyValue); var data = WfFrmMainBll.GetForm(keyValue);
return Content(data.ToJson()); return Content(data.ToJson());
} }
@@ -106,7 +101,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpGet] [HttpGet]
public ActionResult GetAllListJson() public ActionResult GetAllListJson()
{ {
var data = _wfFrmMainBll.GetAllList(); var data = WfFrmMainBll.GetAllList();
return Content(data.ToJson()); return Content(data.ToJson());
} }
#endregion #endregion
@@ -120,7 +115,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
[HttpPost] [HttpPost]
public string RemoveForm(Guid[] ids) public string RemoveForm(Guid[] ids)
{ {
_wfFrmMainBll.RemoveForm(ids); WfFrmMainBll.RemoveForm(ids);
return Result.ToJson(); return Result.ToJson();
} }
///// <summary> ///// <summary>
@@ -137,7 +132,7 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
var user = AuthUtil.GetCurrentUser(); var user = AuthUtil.GetCurrentUser();
userEntity.ModifyUserId = user.User.Account; userEntity.ModifyUserId = user.User.Account;
userEntity.ModifyUserName = user.User.Name; userEntity.ModifyUserName = user.User.Name;
_wfFrmMainBll.SaveForm(keyValue, userEntity); WfFrmMainBll.SaveForm(keyValue, userEntity);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@@ -15,12 +15,12 @@
InitControl(); InitControl();
}); });
function initLoadPageData() { function initLoadPageData() {
var _FlowDesignObject = top.FlowSchemeBuider.FlowDesignObject; var _FlowDesignObject = parent.FlowDesignObject;
lineobject = _FlowDesignObject.$lineData[top.FlowSchemeBuider.LineId]; lineobject = _FlowDesignObject.$lineData[parent.LineId];
lineobject.id = top.FlowSchemeBuider.LineId; lineobject.id = parent.LineId;
fromnode = _FlowDesignObject.$nodeData[lineobject.from]; fromnode = _FlowDesignObject.$nodeData[lineobject.from];
frmtype = top.FlowSchemeBuider.postData["FrmType"]; frmtype = parent.postData["FrmType"];
if (frmtype == 0) { if (frmtype == 0) {
frmCotent = JSON.parse(top.FlowSchemeBuider.frmData["FrmContent"]); frmCotent = JSON.parse(top.FlowSchemeBuider.frmData["FrmContent"]);
} }

View File

@@ -36,30 +36,31 @@ namespace OpenAuth.Mvc
builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IRepository<>)); builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IRepository<>));
builder.RegisterType(typeof (UnitWork)).As(typeof (IUnitWork)); builder.RegisterType(typeof (UnitWork)).As(typeof (IUnitWork));
//注册WebConfig中的配置
builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
//注册app层 //注册app层
builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof (UserManagerApp))); builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof (UserManagerApp)));
//注册领域服务 //注册领域服务
builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(AuthoriseService))) builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(AuthoriseService)))
.Where(u =>u.Namespace== "OpenAuth.Domain.Service"); .Where(u =>u.Namespace== "OpenAuth.Domain.Service"
|| u.Namespace == "OpenAuth.Domain.Interface");
// Register your MVC controllers. //注册Repository
builder.RegisterControllers(typeof(MvcApplication).Assembly); builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(UserRepository)))
.AsImplementedInterfaces();
// OPTIONAL: Register model binders that require DI. // 注册controller使用属性注入
builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();
builder.RegisterModelBinders(Assembly.GetExecutingAssembly()); builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
builder.RegisterModelBinderProvider(); builder.RegisterModelBinderProvider();
// OPTIONAL: Register web abstractions like HttpContextBase. // OPTIONAL: Register web abstractions like HttpContextBase.
builder.RegisterModule<AutofacWebTypesModule>(); //builder.RegisterModule<AutofacWebTypesModule>();
// OPTIONAL: Enable property injection in view pages. // OPTIONAL: Enable property injection in view pages.
builder.RegisterSource(new ViewRegistrationSource()); builder.RegisterSource(new ViewRegistrationSource());
// OPTIONAL: Enable property injection into action filters. // 注册所有的Attribute
builder.RegisterFilterProvider(); builder.RegisterFilterProvider();
// Set the dependency resolver to be Autofac. // Set the dependency resolver to be Autofac.

View File

@@ -10,12 +10,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class CategoryManagerController : BaseController public class CategoryManagerController : BaseController
{ {
private CategoryManagerApp _app; public CategoryManagerApp App { get; set; }
public CategoryManagerController()
{
_app = AutofacExt.GetFromFac<CategoryManagerApp>();
}
// //
// GET: /UserManager/ // GET: /UserManager/
@@ -30,12 +25,12 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public string Load(Guid parentId, int page = 1, int rows = 30) public string Load(Guid parentId, int page = 1, int rows = 30)
{ {
return JsonHelper.Instance.Serialize(_app.Load(parentId, page, rows)); return JsonHelper.Instance.Serialize(App.Load(parentId, page, rows));
} }
public string LoadForTree() public string LoadForTree()
{ {
return JsonHelper.Instance.Serialize(_app.LoadAll()); return JsonHelper.Instance.Serialize(App.LoadAll());
} }
//添加或修改Category //添加或修改Category
@@ -44,7 +39,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.AddOrUpdate(model); App.AddOrUpdate(model);
} }
catch (Exception ex) catch (Exception ex)
@@ -59,7 +54,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.Delete(ids); App.Delete(ids);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@@ -12,13 +12,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class HomeController : BaseController public class HomeController : BaseController
{ {
private ModuleManagerApp _app;
public HomeController()
{
_app = AutofacExt.GetFromFac<ModuleManagerApp>();
}
public ActionResult Index() public ActionResult Index()
{ {
ViewBag.NavBar = GetNavBar(); ViewBag.NavBar = GetNavBar();

View File

@@ -24,12 +24,8 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class ModuleElementManagerController : BaseController public class ModuleElementManagerController : BaseController
{ {
private ModuleElementManagerApp _app; public ModuleElementManagerApp App { get; set; }
public ModuleElementManagerController()
{
_app = AutofacExt.GetFromFac<ModuleElementManagerApp>();
}
public ActionResult Index(Guid id) public ActionResult Index(Guid id)
{ {
ViewBag.ModuleId = id; ViewBag.ModuleId = id;
@@ -37,14 +33,14 @@ namespace OpenAuth.Mvc.Controllers
} }
public ActionResult Get(Guid moduleId) public ActionResult Get(Guid moduleId)
{ {
return Json(_app.LoadByModuleId(moduleId), JsonRequestBehavior.AllowGet); return Json(App.LoadByModuleId(moduleId), JsonRequestBehavior.AllowGet);
} }
[HttpPost] [HttpPost]
public string AddOrEditButton(ModuleElement button) public string AddOrEditButton(ModuleElement button)
{ {
try try
{ {
_app.AddOrUpdate(button); App.AddOrUpdate(button);
} }
catch (DbEntityValidationException e) catch (DbEntityValidationException e)
{ {
@@ -58,7 +54,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.Delete(ids); App.Delete(ids);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -83,7 +79,7 @@ namespace OpenAuth.Mvc.Controllers
} }
public string LoadWithAccess(Guid tId, Guid firstId, string key) public string LoadWithAccess(Guid tId, Guid firstId, string key)
{ {
return JsonHelper.Instance.Serialize(_app.LoadWithAccess(key, firstId, tId)); return JsonHelper.Instance.Serialize(App.LoadWithAccess(key, firstId, tId));
} }
} }
} }

View File

@@ -14,12 +14,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class ModuleManagerController : BaseController public class ModuleManagerController : BaseController
{ {
private ModuleManagerApp _app; public ModuleManagerApp App { get; set; }
public ModuleManagerController()
{
_app = AutofacExt.GetFromFac<ModuleManagerApp>();
}
// GET: /ModuleManager/ // GET: /ModuleManager/
[Authenticate] [Authenticate]
@@ -34,7 +29,7 @@ namespace OpenAuth.Mvc.Controllers
ViewBag.ModuleType = key; ViewBag.ModuleType = key;
var moduleWithChildren = AuthUtil.GetCurrentUser().ModuleWithChildren; var moduleWithChildren = AuthUtil.GetCurrentUser().ModuleWithChildren;
var modules = key == "UserModule" ? _app.LoadForUser(firstId) : _app.LoadForRole(firstId); var modules = key == "UserModule" ? App.LoadForUser(firstId) : App.LoadForRole(firstId);
CheckModule(moduleWithChildren, modules); CheckModule(moduleWithChildren, modules);
@@ -106,7 +101,7 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public string Load(Guid orgId, int page = 1, int rows = 30) public string Load(Guid orgId, int page = 1, int rows = 30)
{ {
return JsonHelper.Instance.Serialize(_app.Load(orgId, page, rows)); return JsonHelper.Instance.Serialize(App.Load(orgId, page, rows));
} }
/// <summary> /// <summary>
@@ -116,7 +111,7 @@ namespace OpenAuth.Mvc.Controllers
/// <returns>System.String.</returns> /// <returns>System.String.</returns>
public string LoadForUser(Guid firstId) public string LoadForUser(Guid firstId)
{ {
var orgs = _app.LoadForUser(firstId); var orgs = App.LoadForUser(firstId);
return JsonHelper.Instance.Serialize(orgs); return JsonHelper.Instance.Serialize(orgs);
} }
@@ -127,7 +122,7 @@ namespace OpenAuth.Mvc.Controllers
/// <returns>System.String.</returns> /// <returns>System.String.</returns>
public string LoadForRole(Guid firstId) public string LoadForRole(Guid firstId)
{ {
var orgs = _app.LoadForRole(firstId); var orgs = App.LoadForRole(firstId);
return JsonHelper.Instance.Serialize(orgs); return JsonHelper.Instance.Serialize(orgs);
} }
@@ -145,7 +140,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.AddOrUpdate(model); App.AddOrUpdate(model);
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -162,7 +157,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
foreach (var obj in ids) foreach (var obj in ids)
{ {
_app.Delete(obj); App.Delete(obj);
} }
} }
catch (Exception e) catch (Exception e)

View File

@@ -10,12 +10,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class OrgManagerController : BaseController public class OrgManagerController : BaseController
{ {
private OrgManagerApp _orgApp; public OrgManagerApp OrgApp { get; set; }
public OrgManagerController()
{
_orgApp = AutofacExt.GetFromFac<OrgManagerApp>();
}
// //
// GET: /OrgManager/ // GET: /OrgManager/
@@ -38,13 +33,13 @@ namespace OpenAuth.Mvc.Controllers
public string LoadForUser(Guid firstId) public string LoadForUser(Guid firstId)
{ {
var orgs = _orgApp.LoadForUser(firstId); var orgs = OrgApp.LoadForUser(firstId);
return JsonHelper.Instance.Serialize(orgs); return JsonHelper.Instance.Serialize(orgs);
} }
public string LoadForRole(Guid firstId) public string LoadForRole(Guid firstId)
{ {
var orgs = _orgApp.LoadForRole(firstId); var orgs = OrgApp.LoadForRole(firstId);
return JsonHelper.Instance.Serialize(orgs); return JsonHelper.Instance.Serialize(orgs);
} }
@@ -55,7 +50,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_orgApp.AddOrUpdate(org); OrgApp.AddOrUpdate(org);
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -67,7 +62,7 @@ namespace OpenAuth.Mvc.Controllers
public string LoadChildren(Guid id) public string LoadChildren(Guid id)
{ {
return JsonHelper.Instance.Serialize(_orgApp.LoadAllChildren(id)); return JsonHelper.Instance.Serialize(OrgApp.LoadAllChildren(id));
} }
/// <summary> /// <summary>
@@ -80,7 +75,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_orgApp.DelOrg(ids); OrgApp.DelOrg(ids);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@@ -12,19 +12,14 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class RelevanceManagerController : BaseController public class RelevanceManagerController : BaseController
{ {
private RevelanceManagerApp _app; public RevelanceManagerApp App { get; set; }
public RelevanceManagerController()
{
_app = AutofacExt.GetFromFac<RevelanceManagerApp>();
}
[HttpPost] [HttpPost]
public string Assign(string type, Guid firstId, Guid[] secIds) public string Assign(string type, Guid firstId, Guid[] secIds)
{ {
try try
{ {
_app.Assign(type, firstId, secIds); App.Assign(type, firstId, secIds);
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -38,7 +33,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.UnAssign(type, firstId, secIds); App.UnAssign(type, firstId, secIds);
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@@ -11,12 +11,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class ResourceManagerController : BaseController public class ResourceManagerController : BaseController
{ {
private ResourceManagerApp _app; public ResourceManagerApp App { get; set; }
public ResourceManagerController()
{
_app = AutofacExt.GetFromFac<ResourceManagerApp>();
}
// //
// GET: /UserManager/ // GET: /UserManager/
@@ -32,7 +27,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.AddOrUpdate(model); App.AddOrUpdate(model);
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -47,12 +42,12 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public string Load(Guid categoryId, int page = 1, int rows = 30) public string Load(Guid categoryId, int page = 1, int rows = 30)
{ {
return JsonHelper.Instance.Serialize(_app.Load(AuthUtil.GetUserName(), categoryId, page, rows)); return JsonHelper.Instance.Serialize(App.Load(AuthUtil.GetUserName(), categoryId, page, rows));
} }
public string LoadForTree() public string LoadForTree()
{ {
var models = _app.LoadAll(); var models = App.LoadAll();
return JsonHelper.Instance.Serialize(models); return JsonHelper.Instance.Serialize(models);
} }
@@ -61,7 +56,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.Delete(ids); App.Delete(ids);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -96,7 +91,7 @@ namespace OpenAuth.Mvc.Controllers
/// <returns>System.String.</returns> /// <returns>System.String.</returns>
public string LoadWithAccess(Guid cId, Guid firstId, string key) public string LoadWithAccess(Guid cId, Guid firstId, string key)
{ {
return JsonHelper.Instance.Serialize(_app.LoadWithAccess(AuthUtil.GetUserName(),key,firstId, cId)); return JsonHelper.Instance.Serialize(App.LoadWithAccess(AuthUtil.GetUserName(),key,firstId, cId));
} }
} }
} }

View File

@@ -10,12 +10,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class RoleManagerController : BaseController public class RoleManagerController : BaseController
{ {
private RoleManagerApp _app; public RoleManagerApp App { get; set; }
public RoleManagerController()
{
_app = AutofacExt.GetFromFac<RoleManagerApp>();
}
// //
// GET: /RoleManager/ // GET: /RoleManager/
@@ -31,7 +26,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.AddOrUpdate(obj); App.AddOrUpdate(obj);
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -46,7 +41,7 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public string Load(Guid orgId, int pageCurrent = 1, int pageSize = 30) public string Load(Guid orgId, int pageCurrent = 1, int pageSize = 30)
{ {
return JsonHelper.Instance.Serialize(_app.Load(orgId, pageCurrent, pageSize)); return JsonHelper.Instance.Serialize(App.Load(orgId, pageCurrent, pageSize));
} }
[System.Web.Mvc.HttpPost] [System.Web.Mvc.HttpPost]
@@ -56,7 +51,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
foreach (var obj in ids) foreach (var obj in ids)
{ {
_app.Delete(obj); App.Delete(obj);
} }
} }
catch (Exception e) catch (Exception e)
@@ -78,7 +73,7 @@ namespace OpenAuth.Mvc.Controllers
public string LoadForOrgAndUser(Guid orgId, Guid userId) public string LoadForOrgAndUser(Guid orgId, Guid userId)
{ {
return JsonHelper.Instance.Serialize(_app.LoadForOrgAndUser(orgId, userId)); return JsonHelper.Instance.Serialize(App.LoadForOrgAndUser(orgId, userId));
} }
#endregion #endregion

View File

@@ -14,12 +14,7 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public class StockManagerController : BaseController public class StockManagerController : BaseController
{ {
private StockManagerApp _app; public StockManagerApp App { get; set; }
public StockManagerController()
{
_app = AutofacExt.GetFromFac<StockManagerApp>();
}
// //
// GET: /UserManager/ // GET: /UserManager/
@@ -37,7 +32,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
var newmodel = new Stock(); var newmodel = new Stock();
model.CopyTo(newmodel); model.CopyTo(newmodel);
_app.AddOrUpdate(newmodel); App.AddOrUpdate(newmodel);
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -52,14 +47,14 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public string Load(Guid parentId, int page = 1, int rows = 30) public string Load(Guid parentId, int page = 1, int rows = 30)
{ {
return JsonHelper.Instance.Serialize(_app.Load(AuthUtil.GetUserName(), parentId, page, rows)); return JsonHelper.Instance.Serialize(App.Load(AuthUtil.GetUserName(), parentId, page, rows));
} }
public string Delete(Guid[] ids) public string Delete(Guid[] ids)
{ {
try try
{ {
_app.Delete(ids); App.Delete(ids);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@@ -13,12 +13,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
public class UserManagerController : BaseController public class UserManagerController : BaseController
{ {
private UserManagerApp _app; public UserManagerApp App { get; set; }
public UserManagerController()
{
_app = AutofacExt.GetFromFac<UserManagerApp>();
}
// //
// GET: /UserManager/ // GET: /UserManager/
@@ -34,7 +29,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.AddOrUpdate(view); App.AddOrUpdate(view);
} }
catch (Exception ex) catch (Exception ex)
@@ -50,7 +45,7 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public string Load(Guid orgId, int page = 1, int rows = 30) public string Load(Guid orgId, int page = 1, int rows = 30)
{ {
return JsonHelper.Instance.Serialize(_app.Load(orgId, page, rows)); return JsonHelper.Instance.Serialize(App.Load(orgId, page, rows));
} }
[HttpPost] [HttpPost]
@@ -58,7 +53,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
try try
{ {
_app.Delete(ids); App.Delete(ids);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -81,7 +76,7 @@ namespace OpenAuth.Mvc.Controllers
var treeList = new List<TreeEntity>(); var treeList = new List<TreeEntity>();
string companyid = ""; string companyid = "";
string departmentid = ""; string departmentid = "";
foreach (UserView item in _app.Load(Guid.Empty, 1, 10).rows) foreach (UserView item in App.Load(Guid.Empty, 1, 10).rows)
{ {
TreeEntity tree = new TreeEntity(); TreeEntity tree = new TreeEntity();
@@ -107,7 +102,7 @@ namespace OpenAuth.Mvc.Controllers
/// </summary> /// </summary>
public string GetAccessedUsers() public string GetAccessedUsers()
{ {
IEnumerable<UserView> users = _app.Load(Guid.Empty, 1, 10).rows; IEnumerable<UserView> users = App.Load(Guid.Empty, 1, 10).rows;
var result = new Dictionary<string , object>(); var result = new Dictionary<string , object>();
foreach (var user in users) foreach (var user in users)
{ {

View File

@@ -9,8 +9,6 @@
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration" />
</configSections> </configSections>
<connectionStrings> <connectionStrings>
@@ -42,19 +40,6 @@
</root> </root>
</log4net> </log4net>
<autofac defaultAssembly=" OpenAuth.Repository">
<components>
<component type=" OpenAuth.Repository.UserRepository" service=" OpenAuth.Domain.Interface.IUserRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.OrgRepository" service="OpenAuth.Domain.Interface.IOrgRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.RoleRepository" service="OpenAuth.Domain.Interface.IRoleRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.ModuleRepository" service="OpenAuth.Domain.Interface.IModuleRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.RelevanceRepository" service="OpenAuth.Domain.Interface.IRelevanceRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.CategoryRepository" service="OpenAuth.Domain.Interface.ICategoryRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.ResourceRepository" service="OpenAuth.Domain.Interface.IResourceRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.StockRepository" service="OpenAuth.Domain.Interface.IStockRepository,OpenAuth.Domain" />
</components>
</autofac>
<appSettings> <appSettings>
<add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" /> <add key="webpages:Enabled" value="false" />

View File

@@ -79,8 +79,8 @@
<Compile Include="OrgRepository.cs" /> <Compile Include="OrgRepository.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ModuleRepository.cs" /> <Compile Include="ModuleRepository.cs" />
<Compile Include="ResourceRepository.cs" />
<Compile Include="RoleRepository.cs" /> <Compile Include="RoleRepository.cs" />
<Compile Include="ResourceRepository.cs" />
<Compile Include="CategoryRepository.cs" /> <Compile Include="CategoryRepository.cs" />
<Compile Include="StockRepository.cs" /> <Compile Include="StockRepository.cs" />
<Compile Include="UserRepository.cs" /> <Compile Include="UserRepository.cs" />

View File

@@ -1,57 +1,40 @@
using System; using System;
using System.Collections.Generic; using OpenAuth.Domain;
using System.Linq; using OpenAuth.Domain.Interface;
using System.Text; using System.Collections.Generic;
using System.Threading.Tasks; using System.Linq;
using OpenAuth.Domain;
using OpenAuth.Domain.Interface; namespace OpenAuth.Repository
{
namespace OpenAuth.Repository public class ResourceRepository : BaseRepository<Resource>, IResourceRepository
{ {
public class RoleRepository :BaseRepository<Role>, IRoleRepository public IEnumerable<Resource> LoadInOrgs(int pageindex, int pagesize, params Guid[] orgIds)
{ {
public IEnumerable<Role> LoadRoles(int pageindex, int pagesize) return LoadInOrgs(orgIds).OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize);
{ }
return Context.Roles.OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize);
} public void Delete(Guid id)
{
public int GetRoleCntInOrgs(params Guid[] orgIds) Delete(u => u.Id == id);
{ }
return LoadInOrgs(orgIds).Count();
} public IEnumerable<Resource> LoadInOrgs(params Guid[] orgId)
{
public IEnumerable<Role> LoadInOrgs(int pageindex, int pagesize, params Guid[] orgIds) bool isZero = orgId.Length == 1 && orgId[0] == Guid.Empty; //判断传进来的是否为0
{ var result = from resource in Context.Resources.Where(u =>isZero
return LoadInOrgs(orgIds).OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize); || u.CascadeId != null &&orgId.Contains(u.CategoryId.Value)) select resource;
}
return result;
public void Delete(Guid id) }
{
Delete(u =>u.Id == id); public IEnumerable<Resource> LoadResources(int pageindex, int pagesize)
} {
return Context.Resources.OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize);
public IEnumerable<Role> LoadInOrgs(params Guid[] orgId) }
{
var roles = Context.Relevances.Where(u => u.Key == "RoleOrg" public int GetResourceCntInOrgs(params Guid[] orgIds)
&& orgId.Contains(u.SecondId)).Select(u => u.FirstId); //机构关联的角色 {
return LoadInOrgs(orgIds).Count();
var result = from role in Context.Roles.Where(u =>roles.Contains(u.Id)) select role; }
}
return result; }
}
public IEnumerable<Role> LoadForUser(Guid userId)
{
if (userId == Guid.Empty)
return Find(null);
var userRoleIds =
Context.Relevances.Where(u => u.FirstId == userId && u.Key == "UserRole")
.Select(u => u.SecondId).ToList();
return Find(u => userRoleIds.Contains(u.Id));
}
}
}

View File

@@ -1,40 +1,57 @@
using System; using System;
using OpenAuth.Domain;
using OpenAuth.Domain.Interface;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenAuth.Domain;
using OpenAuth.Domain.Interface;
namespace OpenAuth.Repository namespace OpenAuth.Repository
{ {
public class ResourceRepository : BaseRepository<Resource>, IResourceRepository public class RoleRepository :BaseRepository<Role>, IRoleRepository
{ {
public IEnumerable<Resource> LoadInOrgs(int pageindex, int pagesize, params Guid[] orgIds) public IEnumerable<Role> LoadRoles(int pageindex, int pagesize)
{
return Context.Roles.OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize);
}
public int GetRoleCntInOrgs(params Guid[] orgIds)
{
return LoadInOrgs(orgIds).Count();
}
public IEnumerable<Role> LoadInOrgs(int pageindex, int pagesize, params Guid[] orgIds)
{ {
return LoadInOrgs(orgIds).OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize); return LoadInOrgs(orgIds).OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize);
} }
public void Delete(Guid id) public void Delete(Guid id)
{ {
Delete(u => u.Id == id); Delete(u =>u.Id == id);
} }
public IEnumerable<Resource> LoadInOrgs(params Guid[] orgId) public IEnumerable<Role> LoadInOrgs(params Guid[] orgId)
{ {
bool isZero = orgId.Length == 1 && orgId[0] == Guid.Empty; //判断传进来的是否为0 var roles = Context.Relevances.Where(u => u.Key == "RoleOrg"
var result = from resource in Context.Resources.Where(u =>isZero && orgId.Contains(u.SecondId)).Select(u => u.FirstId); //机构关联的角色
|| u.CascadeId != null &&orgId.Contains(u.CategoryId.Value)) select resource;
var result = from role in Context.Roles.Where(u =>roles.Contains(u.Id)) select role;
return result; return result;
} }
public IEnumerable<Resource> LoadResources(int pageindex, int pagesize) public IEnumerable<Role> LoadForUser(Guid userId)
{ {
return Context.Resources.OrderBy(u => u.Id).Skip((pageindex - 1) * pagesize).Take(pagesize);
}
public int GetResourceCntInOrgs(params Guid[] orgIds) if (userId == Guid.Empty)
{ return Find(null);
return LoadInOrgs(orgIds).Count();
var userRoleIds =
Context.Relevances.Where(u => u.FirstId == userId && u.Key == "UserRole")
.Select(u => u.SecondId).ToList();
return Find(u => userRoleIds.Contains(u.Id));
} }
} }
} }

View File

@@ -0,0 +1,253 @@
using System.Linq;
using System.Web.Http;
using WebActivatorEx;
using OpenAuth.WebApi;
using Swashbuckle.Application;
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace OpenAuth.WebApi
{
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
// By default, the service root url is inferred from the request used to access the docs.
// However, there may be situations (e.g. proxy and load-balanced environments) where this does not
// resolve correctly. You can workaround this by providing your own code to determine the root URL.
//
//c.RootUrl(req => GetRootUrlFromAppConfig());
// If schemes are not explicitly provided in a Swagger 2.0 document, then the scheme used to access
// the docs is taken as the default. If your API supports multiple schemes and you want to be explicit
// about them, you can use the "Schemes" option as shown below.
//
//c.Schemes(new[] { "http", "https" });
// Use "SingleApiVersion" to describe a single version API. Swagger 2.0 includes an "Info" object to
// hold additional metadata for an API. Version and title are required but you can also provide
// additional fields by chaining methods off SingleApiVersion.
//
c.SingleApiVersion("v1", "OpenAuth.WebApi");
// If your API has multiple versions, use "MultipleApiVersions" instead of "SingleApiVersion".
// In this case, you must provide a lambda that tells Swashbuckle which actions should be
// included in the docs for a given API version. Like "SingleApiVersion", each call to "Version"
// returns an "Info" builder so you can provide additional metadata per API version.
//
//c.MultipleApiVersions(
// (apiDesc, targetApiVersion) => ResolveVersionSupportByRouteConstraint(apiDesc, targetApiVersion),
// (vc) =>
// {
// vc.Version("v2", "Swashbuckle Dummy API V2");
// vc.Version("v1", "Swashbuckle Dummy API V1");
// });
// You can use "BasicAuth", "ApiKey" or "OAuth2" options to describe security schemes for the API.
// See https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md for more details.
// NOTE: These only define the schemes and need to be coupled with a corresponding "security" property
// at the document or operation level to indicate which schemes are required for an operation. To do this,
// you'll need to implement a custom IDocumentFilter and/or IOperationFilter to set these properties
// according to your specific authorization implementation
//
//c.BasicAuth("basic")
// .Description("Basic HTTP Authentication");
//
// NOTE: You must also configure 'EnableApiKeySupport' below in the SwaggerUI section
//c.ApiKey("apiKey")
// .Description("API Key Authentication")
// .Name("apiKey")
// .In("header");
//
//c.OAuth2("oauth2")
// .Description("OAuth2 Implicit Grant")
// .Flow("implicit")
// .AuthorizationUrl("http://petstore.swagger.wordnik.com/api/oauth/dialog")
// //.TokenUrl("https://tempuri.org/token")
// .Scopes(scopes =>
// {
// scopes.Add("read", "Read access to protected resources");
// scopes.Add("write", "Write access to protected resources");
// });
// Set this flag to omit descriptions for any actions decorated with the Obsolete attribute
//c.IgnoreObsoleteActions();
// Each operation be assigned one or more tags which are then used by consumers for various reasons.
// For example, the swagger-ui groups operations according to the first tag of each operation.
// By default, this will be controller name but you can use the "GroupActionsBy" option to
// override with any value.
//
//c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString());
// You can also specify a custom sort order for groups (as defined by "GroupActionsBy") to dictate
// the order in which operations are listed. For example, if the default grouping is in place
// (controller name) and you specify a descending alphabetic sort order, then actions from a
// ProductsController will be listed before those from a CustomersController. This is typically
// used to customize the order of groupings in the swagger-ui.
//
//c.OrderActionGroupsBy(new DescendingAlphabeticComparer());
// If you annotate Controllers and API Types with
// Xml comments (http://msdn.microsoft.com/en-us/library/b2s063f7(v=vs.110).aspx), you can incorporate
// those comments into the generated docs and UI. You can enable this by providing the path to one or
// more Xml comment files.
//
//c.IncludeXmlComments(GetXmlCommentsPath());
//<2F><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD><EFBFBD><EFBFBD>xml·<6C><C2B7><EFBFBD><EFBFBD>ַ
c.IncludeXmlComments(string.Format("{0}/bin/OpenAuth.WebApi.XML", System.AppDomain.CurrentDomain.BaseDirectory));
// Swashbuckle makes a best attempt at generating Swagger compliant JSON schemas for the various types
// exposed in your API. However, there may be occasions when more control of the output is needed.
// This is supported through the "MapType" and "SchemaFilter" options:
//
// Use the "MapType" option to override the Schema generation for a specific type.
// It should be noted that the resulting Schema will be placed "inline" for any applicable Operations.
// While Swagger 2.0 supports inline definitions for "all" Schema types, the swagger-ui tool does not.
// It expects "complex" Schemas to be defined separately and referenced. For this reason, you should only
// use the "MapType" option when the resulting Schema is a primitive or array type. If you need to alter a
// complex Schema, use a Schema filter.
//
//c.MapType<ProductType>(() => new Schema { type = "integer", format = "int32" });
// If you want to post-modify "complex" Schemas once they've been generated, across the board or for a
// specific type, you can wire up one or more Schema filters.
//
//c.SchemaFilter<ApplySchemaVendorExtensions>();
// In a Swagger 2.0 document, complex types are typically declared globally and referenced by unique
// Schema Id. By default, Swashbuckle does NOT use the full type name in Schema Ids. In most cases, this
// works well because it prevents the "implementation detail" of type namespaces from leaking into your
// Swagger docs and UI. However, if you have multiple types in your API with the same class name, you'll
// need to opt out of this behavior to avoid Schema Id conflicts.
//
//c.UseFullTypeNameInSchemaIds();
// Alternatively, you can provide your own custom strategy for inferring SchemaId's for
// describing "complex" types in your API.
//
//c.SchemaId(t => t.FullName.Contains('`') ? t.FullName.Substring(0, t.FullName.IndexOf('`')) : t.FullName);
// Set this flag to omit schema property descriptions for any type properties decorated with the
// Obsolete attribute
//c.IgnoreObsoleteProperties();
// In accordance with the built in JsonSerializer, Swashbuckle will, by default, describe enums as integers.
// You can change the serializer behavior by configuring the StringToEnumConverter globally or for a given
// enum type. Swashbuckle will honor this change out-of-the-box. However, if you use a different
// approach to serialize enums as strings, you can also force Swashbuckle to describe them as strings.
//
//c.DescribeAllEnumsAsStrings();
// Similar to Schema filters, Swashbuckle also supports Operation and Document filters:
//
// Post-modify Operation descriptions once they've been generated by wiring up one or more
// Operation filters.
//
//c.OperationFilter<AddDefaultResponse>();
//
// If you've defined an OAuth2 flow as described above, you could use a custom filter
// to inspect some attribute on each action and infer which (if any) OAuth2 scopes are required
// to execute the operation
//
//c.OperationFilter<AssignOAuth2SecurityRequirements>();
// Post-modify the entire Swagger document by wiring up one or more Document filters.
// This gives full control to modify the final SwaggerDocument. You should have a good understanding of
// the Swagger 2.0 spec. - https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md
// before using this option.
//
//c.DocumentFilter<ApplyDocumentVendorExtensions>();
// In contrast to WebApi, Swagger 2.0 does not include the query string component when mapping a URL
// to an action. As a result, Swashbuckle will raise an exception if it encounters multiple actions
// with the same path (sans query string) and HTTP method. You can workaround this by providing a
// custom strategy to pick a winner or merge the descriptions for the purposes of the Swagger docs
//
//c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
// Wrap the default SwaggerGenerator with additional behavior (e.g. caching) or provide an
// alternative implementation for ISwaggerProvider with the CustomProvider option.
//
//c.CustomProvider((defaultProvider) => new CachingSwaggerProvider(defaultProvider));
//
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
})
.EnableSwaggerUi(c =>
{
// Use the "InjectStylesheet" option to enrich the UI with one or more additional CSS stylesheets.
// The file must be included in your project as an "Embedded Resource", and then the resource's
// "Logical Name" is passed to the method as shown below.
//
//c.InjectStylesheet(containingAssembly, "Swashbuckle.Dummy.SwaggerExtensions.testStyles1.css");
// Use the "InjectJavaScript" option to invoke one or more custom JavaScripts after the swagger-ui
// has loaded. The file must be included in your project as an "Embedded Resource", and then the resource's
// "Logical Name" is passed to the method as shown above.
//
//c.InjectJavaScript(thisAssembly, "Swashbuckle.Dummy.SwaggerExtensions.testScript1.js");
// The swagger-ui renders boolean data types as a dropdown. By default, it provides "true" and "false"
// strings as the possible choices. You can use this option to change these to something else,
// for example 0 and 1.
//
//c.BooleanValues(new[] { "0", "1" });
// By default, swagger-ui will validate specs against swagger.io's online validator and display the result
// in a badge at the bottom of the page. Use these options to set a different validator URL or to disable the
// feature entirely.
//c.SetValidatorUrl("http://localhost/validator");
//c.DisableValidator();
// Use this option to control how the Operation listing is displayed.
// It can be set to "None" (default), "List" (shows operations for each resource),
// or "Full" (fully expanded: shows operations and their details).
//
//c.DocExpansion(DocExpansion.List);
// Specify which HTTP operations will have the 'Try it out!' option. An empty paramter list disables
// it for all operations.
//
//c.SupportedSubmitMethods("GET", "HEAD");
// Use the CustomAsset option to provide your own version of assets used in the swagger-ui.
// It's typically used to instruct Swashbuckle to return your version instead of the default
// when a request is made for "index.html". As with all custom content, the file must be included
// in your project as an "Embedded Resource", and then the resource's "Logical Name" is passed to
// the method as shown below.
//
//c.CustomAsset("index", containingAssembly, "YourWebApiProject.SwaggerExtensions.index.html");
// If your API has multiple versions and you've applied the MultipleApiVersions setting
// as described above, you can also enable a select box in the swagger-ui, that displays
// a discovery URL for each version. This provides a convenient way for users to browse documentation
// for different API versions.
//
//c.EnableDiscoveryUrlSelector();
// If your API supports the OAuth2 Implicit flow, and you've described it correctly, according to
// the Swagger 2.0 specification, you can enable UI support as shown below.
//
//c.EnableOAuth2Support(
// clientId: "test-client-id",
// clientSecret: null,
// realm: "test-realm",
// appName: "Swagger UI"
// //additionalQueryStringParams: new Dictionary<string, string>() { { "foo", "bar" } }
//);
// If your API supports ApiKey, you can override the default values.
// "apiKeyIn" can either be "query" or "header"
//
//c.EnableApiKeySupport("apiKey", "header");
});
}
}
}

View File

@@ -10,7 +10,7 @@
// *********************************************************************** // ***********************************************************************
using System; using System;
using System.Web.Mvc; using System.Web.Http;
using Infrastructure; using Infrastructure;
using Infrastructure.Cache; using Infrastructure.Cache;
using OpenAuth.App; using OpenAuth.App;
@@ -23,7 +23,7 @@ namespace OpenAuth.WebApi.Areas.SSO.Controllers
/// <para>其他站点通过后台Post来认证</para> /// <para>其他站点通过后台Post来认证</para>
/// <para>或使用静态类OpenAuth.App.SSO.AuthUtil访问</para> /// <para>或使用静态类OpenAuth.App.SSO.AuthUtil访问</para>
/// </summary> /// </summary>
public class CheckController : Controller public class CheckController : ApiController
{ {
private AuthorizeApp _app; private AuthorizeApp _app;
private ObjCacheProvider<UserAuthSession> _objCacheProvider = new ObjCacheProvider<UserAuthSession>(); private ObjCacheProvider<UserAuthSession> _objCacheProvider = new ObjCacheProvider<UserAuthSession>();
@@ -64,13 +64,13 @@ namespace OpenAuth.WebApi.Areas.SSO.Controllers
return string.Empty; return string.Empty;
} }
[HttpPost] [System.Web.Mvc.HttpPost]
public string Login(PassportLoginRequest request) public string Login(PassportLoginRequest request)
{ {
return JsonHelper.Instance.Serialize(SSOAuthUtil.Parse(request)); return JsonHelper.Instance.Serialize(SSOAuthUtil.Parse(request));
} }
[HttpPost] [System.Web.Mvc.HttpPost]
public bool Logout(string token, string requestid) public bool Logout(string token, string requestid)
{ {
try try

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace OpenAuth.WebApi
{
public class HomeController :Controller
{
public ActionResult Index()
{
return Redirect("/Swagger/ui/index");
}
}
}

View File

@@ -1,258 +1,277 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" /> <Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion> <ProductVersion>
</ProductVersion> </ProductVersion>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{99EE6163-ECF6-47BF-ADCD-B837188ABBF7}</ProjectGuid> <ProjectGuid>{99EE6163-ECF6-47BF-ADCD-B837188ABBF7}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OpenAuth.WebApi</RootNamespace> <RootNamespace>OpenAuth.WebApi</RootNamespace>
<AssemblyName>OpenAuth.WebApi</AssemblyName> <AssemblyName>OpenAuth.WebApi</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews> <MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>true</UseIISExpress> <UseIISExpress>true</UseIISExpress>
<IISExpressSSLPort /> <IISExpressSSLPort />
<IISExpressAnonymousAuthentication /> <IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication /> <IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode /> <IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile /> <UseGlobalApplicationHostFile />
<NuGetPackageImportStamp> <NuGetPackageImportStamp>
</NuGetPackageImportStamp> </NuGetPackageImportStamp>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\</OutputPath> <OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> <DocumentationFile>bin\OpenAuth.WebApi.XML</DocumentationFile>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> </PropertyGroup>
<DebugType>pdbonly</DebugType> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize> <DebugType>pdbonly</DebugType>
<OutputPath>bin\</OutputPath> <Optimize>true</Optimize>
<DefineConstants>TRACE</DefineConstants> <OutputPath>bin\</OutputPath>
<ErrorReport>prompt</ErrorReport> <DefineConstants>TRACE</DefineConstants>
<WarningLevel>4</WarningLevel> <ErrorReport>prompt</ErrorReport>
</PropertyGroup> <WarningLevel>4</WarningLevel>
<ItemGroup> </PropertyGroup>
<Reference Include="Autofac, Version=3.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL"> <ItemGroup>
<HintPath>..\packages\Autofac.3.5.2\lib\net40\Autofac.dll</HintPath> <Reference Include="Autofac, Version=3.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\Autofac.3.5.2\lib\net40\Autofac.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="Autofac.Configuration, Version=3.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\Autofac.Configuration.3.3.0\lib\net40\Autofac.Configuration.dll</HintPath> <Reference Include="Autofac.Configuration, Version=3.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\Autofac.Configuration.3.3.0\lib\net40\Autofac.Configuration.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="Autofac.Integration.Mvc, Version=3.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\Autofac.Mvc5.3.3.4\lib\net45\Autofac.Integration.Mvc.dll</HintPath> <Reference Include="Autofac.Integration.Mvc, Version=3.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\Autofac.Mvc5.3.3.4\lib\net45\Autofac.Integration.Mvc.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath> <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath> <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath> <Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="Microsoft.CSharp" /> </Reference>
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL"> <Reference Include="Microsoft.CSharp" />
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath> <Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\MySql.Data.Entity.6.9.8\lib\net45\MySql.Data.Entity.EF6.dll</HintPath> <Reference Include="MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\MySql.Data.Entity.6.9.8\lib\net45\MySql.Data.Entity.EF6.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> <Private>True</Private>
<Reference Include="System" /> </Reference>
<Reference Include="System.Data" /> <Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
<Reference Include="System.Drawing" /> <HintPath>..\packages\Swashbuckle.Core.5.5.3\lib\net40\Swashbuckle.Core.dll</HintPath>
<Reference Include="System.Web.Entity" /> <Private>True</Private>
<Reference Include="System.Web.ApplicationServices" /> </Reference>
<Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Drawing" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Web.Entity" />
<Reference Include="System.Web" /> <Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.Abstractions" /> <Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Web.Routing" /> <Reference Include="System.Core" />
<Reference Include="System.Xml" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Configuration" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Web" />
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.Web.Abstractions" />
<Private>True</Private> <Reference Include="System.Web.Routing" />
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath> <Reference Include="System.Xml" />
</Reference> <Reference Include="System.Configuration" />
<Reference Include="System.Net.Http"> <Reference Include="System.Runtime.Serialization" />
</Reference> <Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath> <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Net.Http.WebRequest"> <Reference Include="System.Net.Http">
</Reference> </Reference>
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private> <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath> </Reference>
</Reference> <Reference Include="System.Net.Http.WebRequest">
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> </Reference>
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath> <Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
</Reference> <Private>True</Private>
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath> </Reference>
</Reference> <Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
<Private>True</Private> </Reference>
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath> <Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
</Reference> <HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
<Reference Include="System.Web.Optimization"> </Reference>
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath> <Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
</Reference> <Private>True</Private>
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
<Private>True</Private> </Reference>
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath> <Reference Include="System.Web.Optimization">
</Reference> <HintPath>..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath>
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> </Reference>
<Private>True</Private> <Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath> <Private>True</Private>
</Reference> <HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> </Reference>
<Private>True</Private> <Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath> <Private>True</Private>
</Reference> <HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> </Reference>
<Private>True</Private> <Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath> <Private>True</Private>
</Reference> <HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
<Reference Include="WebGrease"> </Reference>
<Private>True</Private> <Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath> <Private>True</Private>
</Reference> <HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
<Reference Include="Antlr3.Runtime"> </Reference>
<Private>True</Private> <Reference Include="WebActivator, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath> <HintPath>..\packages\WebActivator.1.5.1\lib\net40\WebActivator.dll</HintPath>
</Reference> <Private>True</Private>
</ItemGroup> </Reference>
<ItemGroup> <Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
<Folder Include="App_Data\" /> <HintPath>..\packages\WebActivatorEx.2.0\lib\net40\WebActivatorEx.dll</HintPath>
<Folder Include="Areas\SSO\Models\Services\" /> <Private>True</Private>
</ItemGroup> </Reference>
<ItemGroup> <Reference Include="WebGrease">
<Compile Include="App_Start\FilterConfig.cs" /> <Private>True</Private>
<Compile Include="App_Start\RouteConfig.cs" /> <HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
<Compile Include="App_Start\WebApiConfig.cs" /> </Reference>
<Compile Include="Areas\SSO\Controllers\LoginController.cs" /> <Reference Include="Antlr3.Runtime">
<Compile Include="Areas\SSO\Controllers\CheckController.cs" /> <Private>True</Private>
<Compile Include="Areas\SSO\SSOAreaRegistration.cs" /> <HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath>
<Compile Include="AutofacExt.cs" /> </Reference>
<Compile Include="Global.asax.cs"> </ItemGroup>
<DependentUpon>Global.asax</DependentUpon> <ItemGroup>
</Compile> <Folder Include="App_Data\" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Folder Include="Areas\SSO\Models\Services\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Areas\SSO\Content\bootstrap.min.css" /> <Compile Include="App_Start\FilterConfig.cs" />
<Content Include="Areas\SSO\Content\images\logo.png" /> <Compile Include="App_Start\RouteConfig.cs" />
<Content Include="favicon.ico" /> <Compile Include="App_Start\SwaggerConfig.cs" />
<Content Include="Global.asax" /> <Compile Include="App_Start\WebApiConfig.cs" />
<Content Include="Areas\SSO\Scripts\bootstrap.js" /> <Compile Include="Areas\SSO\Controllers\LoginController.cs" />
<Content Include="Areas\SSO\Scripts\bootstrap.min.js" /> <Compile Include="Areas\SSO\Controllers\CheckController.cs" />
<Content Include="Areas\SSO\Views\web.config" /> <Compile Include="Areas\SSO\SSOAreaRegistration.cs" />
<Content Include="Areas\SSO\Views\Login\Index.cshtml" /> <Compile Include="AutofacExt.cs" />
<None Include="Areas\SSO\Scripts\jquery-1.10.2.intellisense.js" /> <Compile Include="Global.asax.cs">
<Content Include="Areas\SSO\Scripts\jquery-1.10.2.js" /> <DependentUpon>Global.asax</DependentUpon>
<Content Include="Areas\SSO\Scripts\jquery-1.10.2.min.js" /> </Compile>
<Content Include="Areas\SSO\Scripts\modernizr-2.6.2.js" /> <Compile Include="HomeController.cs" />
<Content Include="Areas\SSO\Scripts\respond.js" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Content Include="Areas\SSO\Scripts\respond.min.js" /> </ItemGroup>
<Content Include="Web.config" /> <ItemGroup>
<Content Include="Web.Debug.config"> <Content Include="Areas\SSO\Content\bootstrap.min.css" />
<DependentUpon>Web.config</DependentUpon> <Content Include="Areas\SSO\Content\images\logo.png" />
</Content> <Content Include="favicon.ico" />
<Content Include="Web.Release.config"> <Content Include="Global.asax" />
<DependentUpon>Web.config</DependentUpon> <Content Include="Areas\SSO\Scripts\bootstrap.js" />
</Content> <Content Include="Areas\SSO\Scripts\bootstrap.min.js" />
<Content Include="Areas\SSO\Content\Site.css" /> <Content Include="Areas\SSO\Views\web.config" />
<Content Include="Areas\SSO\Scripts\_references.js" /> <Content Include="Areas\SSO\Views\Login\Index.cshtml" />
<None Include="Properties\PublishProfiles\webapi.pubxml" /> <None Include="Areas\SSO\Scripts\jquery-1.10.2.intellisense.js" />
</ItemGroup> <Content Include="Areas\SSO\Scripts\jquery-1.10.2.js" />
<ItemGroup> <Content Include="Areas\SSO\Scripts\jquery-1.10.2.min.js" />
<ProjectReference Include="..\Infrastructure\Infrastructure.csproj"> <Content Include="Areas\SSO\Scripts\modernizr-2.6.2.js" />
<Project>{5feaec9a-4f1e-4ee7-b377-9db1b0870dac}</Project> <Content Include="Areas\SSO\Scripts\respond.js" />
<Name>Infrastructure</Name> <Content Include="Areas\SSO\Scripts\respond.min.js" />
</ProjectReference> <Content Include="Web.config">
<ProjectReference Include="..\OpenAuth.App\OpenAuth.App.csproj"> <SubType>Designer</SubType>
<Project>{0bbf2d65-fffd-4272-b138-8ea4fb6fec48}</Project> </Content>
<Name>OpenAuth.App</Name> <Content Include="Web.Debug.config">
</ProjectReference> <DependentUpon>Web.config</DependentUpon>
<ProjectReference Include="..\OpenAuth.Domain\OpenAuth.Domain.csproj"> </Content>
<Project>{6108da8e-92a1-4abe-b9f5-26d64d55ca2c}</Project> <Content Include="Web.Release.config">
<Name>OpenAuth.Domain</Name> <DependentUpon>Web.config</DependentUpon>
</ProjectReference> </Content>
<ProjectReference Include="..\OpenAuth.Repository\OpenAuth.Repository.csproj"> <Content Include="Areas\SSO\Content\Site.css" />
<Project>{e8df8dea-e2cf-4bdb-8f4f-3f8205b0e03a}</Project> <Content Include="Areas\SSO\Scripts\_references.js" />
<Name>OpenAuth.Repository</Name> <None Include="Properties\PublishProfiles\webapi.pubxml" />
</ProjectReference> </ItemGroup>
</ItemGroup> <ItemGroup>
<ItemGroup> <ProjectReference Include="..\Infrastructure\Infrastructure.csproj">
<Content Include="packages.config" /> <Project>{5feaec9a-4f1e-4ee7-b377-9db1b0870dac}</Project>
<Content Include="Areas\SSO\Scripts\jquery-1.10.2.min.map" /> <Name>Infrastructure</Name>
</ItemGroup> </ProjectReference>
<PropertyGroup> <ProjectReference Include="..\OpenAuth.App\OpenAuth.App.csproj">
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <Project>{0bbf2d65-fffd-4272-b138-8ea4fb6fec48}</Project>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> <Name>OpenAuth.App</Name>
</PropertyGroup> </ProjectReference>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <ProjectReference Include="..\OpenAuth.Domain\OpenAuth.Domain.csproj">
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <Project>{6108da8e-92a1-4abe-b9f5-26d64d55ca2c}</Project>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> <Name>OpenAuth.Domain</Name>
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> </ProjectReference>
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> <ProjectReference Include="..\OpenAuth.Repository\OpenAuth.Repository.csproj">
</Target> <Project>{e8df8dea-e2cf-4bdb-8f4f-3f8205b0e03a}</Project>
<ProjectExtensions> <Name>OpenAuth.Repository</Name>
<VisualStudio> </ProjectReference>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> </ItemGroup>
<WebProjectProperties> <ItemGroup>
<UseIIS>True</UseIIS> <Content Include="packages.config">
<AutoAssignPort>True</AutoAssignPort> <SubType>Designer</SubType>
<DevelopmentServerPort>52789</DevelopmentServerPort> </Content>
<DevelopmentServerVPath>/</DevelopmentServerVPath> <Content Include="Areas\SSO\Scripts\jquery-1.10.2.min.map" />
<IISUrl>http://localhost:52789/</IISUrl> </ItemGroup>
<NTLMAuthentication>False</NTLMAuthentication> <PropertyGroup>
<UseCustomServer>False</UseCustomServer> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<CustomServerUrl> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</CustomServerUrl> </PropertyGroup>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</WebProjectProperties> <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
</FlavorProperties> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
</VisualStudio> <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
</ProjectExtensions> <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> </Target>
<PropertyGroup> <ProjectExtensions>
<ErrorText>此项目引用这台计算机上缺少的 NuGet 程序包。使用 NuGet 程序包还原可下载这些程序包。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText> <VisualStudio>
</PropertyGroup> <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" /> <WebProjectProperties>
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> <UseIIS>True</UseIIS>
</Target> <AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>52789</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:52789/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>此项目引用这台计算机上缺少的 NuGet 程序包。使用 NuGet 程序包还原可下载这些程序包。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
</Target> </Target>
<Target Name="AfterBuild"> <Target Name="AfterBuild">
</Target> --> </Target> -->
</Project> </Project>

View File

@@ -1,116 +1,128 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问 有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=301879 http://go.microsoft.com/fwlink/?LinkId=301879
--> -->
<configuration> <configuration>
<configSections> <configSections>
<section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration" /> <section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="enyim.com"> <sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching"/> <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</sectionGroup> </sectionGroup>
</configSections> </configSections>
<connectionStrings> <connectionStrings>
<add name="OpenAuthDBContext" connectionString="Data Source=.;Initial Catalog=OpenAuthDB;Persist Security Info=True;User ID=sa;Password=000000;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> <add name="OpenAuthDBContext" connectionString="Data Source=.;Initial Catalog=OpenAuthDB;Persist Security Info=True;User ID=sa;Password=000000;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
<!--<add name="OpenAuthDBContext" connectionString="server=127.0.0.1;user id=root;persistsecurityinfo=True;database=openauth;password=123456" providerName="MySql.Data.MySqlClient" />--> <!--<add name="OpenAuthDBContext" connectionString="server=127.0.0.1;user id=root;persistsecurityinfo=True;database=openauth;password=123456" providerName="MySql.Data.MySqlClient" />-->
</connectionStrings> </connectionStrings>
<enyim.com> <enyim.com>
<memcached protocol="Binary"> <memcached protocol="Binary">
<servers> <servers>
<add address="127.0.0.1" port="11211"/> <add address="127.0.0.1" port="11211" />
</servers> </servers>
</memcached> </memcached>
</enyim.com> </enyim.com>
<appSettings> <appSettings>
<add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" /> <add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" /> <add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" />
<!--登录超时时间--> <!--登录超时时间-->
<add key="AUTH_COOKIE_TIMEOUT_IN_MINUTES" value="5" /> <add key="AUTH_COOKIE_TIMEOUT_IN_MINUTES" value="5" />
</appSettings> </appSettings>
<autofac defaultAssembly=" OpenAuth.Repository"> <autofac defaultAssembly=" OpenAuth.Repository">
<components> <components>
<component type=" OpenAuth.Repository.UserRepository" service=" OpenAuth.Domain.Interface.IUserRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.UserRepository" service=" OpenAuth.Domain.Interface.IUserRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.OrgRepository" service="OpenAuth.Domain.Interface.IOrgRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.OrgRepository" service="OpenAuth.Domain.Interface.IOrgRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.RoleRepository" service="OpenAuth.Domain.Interface.IRoleRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.RoleRepository" service="OpenAuth.Domain.Interface.IRoleRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.ModuleRepository" service="OpenAuth.Domain.Interface.IModuleRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.ModuleRepository" service="OpenAuth.Domain.Interface.IModuleRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.RelevanceRepository" service="OpenAuth.Domain.Interface.IRelevanceRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.RelevanceRepository" service="OpenAuth.Domain.Interface.IRelevanceRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.CategoryRepository" service="OpenAuth.Domain.Interface.ICategoryRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.CategoryRepository" service="OpenAuth.Domain.Interface.ICategoryRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.ResourceRepository" service="OpenAuth.Domain.Interface.IResourceRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.ResourceRepository" service="OpenAuth.Domain.Interface.IResourceRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.StockRepository" service="OpenAuth.Domain.Interface.IStockRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.StockRepository" service="OpenAuth.Domain.Interface.IStockRepository,OpenAuth.Domain" />
</components> </components>
</autofac> </autofac>
<system.web> <system.web>
<compilation debug="true" targetFramework="4.5" /> <compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" /> <httpRuntime targetFramework="4.5" />
</system.web> </system.web>
<system.webServer> <system.webServer>
<handlers> <handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" /> <remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" /> <remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers> </handlers>
</system.webServer> </system.webServer>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /> <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" /> <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" /> <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" /> <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" />
</dependentAssembly> </dependentAssembly>
</assemblyBinding> <dependentAssembly>
</runtime> <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<system.codedom> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
<compilers> </dependentAssembly>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> <dependentAssembly>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
</compilers> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</system.codedom> </dependentAssembly>
<entityFramework> <dependentAssembly>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<parameters> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
<parameter value="mssqllocaldb" /> </dependentAssembly>
</parameters> </assemblyBinding>
</defaultConnectionFactory> </runtime>
<providers> <system.codedom>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> <compilers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
</provider></providers> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</entityFramework> </compilers>
<system.data> </system.codedom>
<DbProviderFactories> <entityFramework>
<remove invariant="MySql.Data.MySqlClient" /> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> <parameters>
</DbProviderFactories> <parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
</provider></providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data></configuration> </system.data></configuration>

View File

@@ -1,35 +1,40 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" /> <package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="Autofac" version="3.5.2" targetFramework="net45" /> <package id="Autofac" version="3.5.2" targetFramework="net45" />
<package id="Autofac.Configuration" version="3.3.0" targetFramework="net45" /> <package id="Autofac.Configuration" version="3.3.0" targetFramework="net45" />
<package id="Autofac.Mvc5" version="3.3.4" targetFramework="net45" /> <package id="Autofac.Mvc5" version="3.3.4" targetFramework="net45" />
<package id="bootstrap" version="3.0.0" targetFramework="net45" /> <package id="bootstrap" version="3.0.0" targetFramework="net45" />
<package id="EntityFramework" version="6.1.3" targetFramework="net45" /> <package id="EntityFramework" version="6.1.3" targetFramework="net45" />
<package id="jQuery" version="1.10.2" targetFramework="net45" /> <package id="jQuery" version="1.10.2" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc.zh-Hans" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Mvc.zh-Hans" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor.zh-Hans" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Razor.zh-Hans" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization.zh-Hans" version="1.1.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Web.Optimization.zh-Hans" version="1.1.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.zh-Hans" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebPages.zh-Hans" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net45" /> <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net45" developmentDependency="true" /> <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net45" developmentDependency="true" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="Modernizr" version="2.6.2" targetFramework="net45" /> <package id="Modernizr" version="2.6.2" targetFramework="net45" />
<package id="MySql.Data" version="6.9.8" targetFramework="net45" /> <package id="MySql.Data" version="6.9.8" targetFramework="net45" />
<package id="MySql.Data.Entity" version="6.9.8" targetFramework="net45" /> <package id="MySql.Data.Entity" version="6.9.8" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" /> <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
<package id="Respond" version="1.2.0" targetFramework="net45" /> <package id="Respond" version="1.2.0" targetFramework="net45" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" /> <package id="Swagger.Net.UI" version="1.1.0" targetFramework="net45" />
<package id="Swashbuckle" version="5.5.3" targetFramework="net45" />
<package id="Swashbuckle.Core" version="5.5.3" targetFramework="net45" />
<package id="WebActivator" version="1.5.1" targetFramework="net45" />
<package id="WebActivatorEx" version="2.0" targetFramework="net45" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
</packages> </packages>

Binary file not shown.