From 6181f9dd4785430caea3477311a87e713d2f50ed Mon Sep 17 00:00:00 2001 From: yubaolee Date: Mon, 25 Apr 2016 11:53:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=BC=94=E7=A4=BA=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=94=AF=E6=8C=81=EF=BC=8C=E5=9C=A8web.config?= =?UTF-8?q?=E4=B8=AD=E9=85=8D=E7=BD=AE=E5=8D=B3=E5=8F=AF=EF=BC=9B=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89=E5=87=BA=E5=B7=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E5=8F=82=E8=80=83ErrorController?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/LoginApp.cs | 2 +- OpenAuth.Mvc/BllScripts/assignModule.js | 10 +++++ .../BllScripts/assignModuleElement.js | 10 +++++ OpenAuth.Mvc/BllScripts/assignOrg.js | 10 +++++ OpenAuth.Mvc/BllScripts/assignRes.js | 10 +++++ OpenAuth.Mvc/BllScripts/categoryManager.js | 6 ++- OpenAuth.Mvc/BllScripts/moduleElementMan.js | 11 ++++- OpenAuth.Mvc/BllScripts/modulemanager.js | 4 ++ OpenAuth.Mvc/BllScripts/orgManager.js | 4 ++ OpenAuth.Mvc/BllScripts/resourceManager.js | 4 ++ OpenAuth.Mvc/BllScripts/roleManager.js | 4 ++ OpenAuth.Mvc/BllScripts/usermanager.js | 4 ++ OpenAuth.Mvc/Controllers/BaseController.cs | 15 +++++-- .../Controllers/CategoryManagerController.cs | 5 --- OpenAuth.Mvc/Controllers/ErrorController.cs | 43 +++++++++++++++++-- .../ModuleElementManagerController.cs | 13 +++--- .../Controllers/RoleManagerController.cs | 5 --- OpenAuth.Mvc/Global.asax.cs | 40 ++++++++++++++++- OpenAuth.Mvc/OpenAuth.Mvc.csproj | 2 +- OpenAuth.Mvc/Views/Home/Main.cshtml | 4 +- OpenAuth.Mvc/Views/Login/Index.cshtml | 5 ++- OpenAuth.Mvc/Web.config | 4 +- 22 files changed, 182 insertions(+), 33 deletions(-) diff --git a/OpenAuth.App/LoginApp.cs b/OpenAuth.App/LoginApp.cs index cd1719e4..c3da4227 100644 --- a/OpenAuth.App/LoginApp.cs +++ b/OpenAuth.App/LoginApp.cs @@ -38,7 +38,7 @@ namespace OpenAuth.App { if (!HttpContext.Current.User.Identity.IsAuthenticated) { - throw new Exception("未登录"); + throw new HttpException(401,"未登录"); } string username = HttpContext.Current.User.Identity.Name; _service.GetUserAccessed(username); diff --git a/OpenAuth.Mvc/BllScripts/assignModule.js b/OpenAuth.Mvc/BllScripts/assignModule.js index 85a789c8..3ea54247 100644 --- a/OpenAuth.Mvc/BllScripts/assignModule.js +++ b/OpenAuth.Mvc/BllScripts/assignModule.js @@ -23,6 +23,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + if (json.statusCode != "200") { + json = $.parseJSON(json); + $(this).alertmsg('warn', json.message); + return; + } selected.reLoad(); }); }); @@ -35,6 +40,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + if (json.statusCode != "200") { + json = $.parseJSON(json); + $(this).alertmsg('warn', json.message); + return; + } selected.reLoad(); }); }); diff --git a/OpenAuth.Mvc/BllScripts/assignModuleElement.js b/OpenAuth.Mvc/BllScripts/assignModuleElement.js index 79db00c5..1816787b 100644 --- a/OpenAuth.Mvc/BllScripts/assignModuleElement.js +++ b/OpenAuth.Mvc/BllScripts/assignModuleElement.js @@ -23,6 +23,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } dlgList.reload(); }); }); @@ -35,6 +40,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } dlgList.reload(); }); }); diff --git a/OpenAuth.Mvc/BllScripts/assignOrg.js b/OpenAuth.Mvc/BllScripts/assignOrg.js index 80407a1a..b3338506 100644 --- a/OpenAuth.Mvc/BllScripts/assignOrg.js +++ b/OpenAuth.Mvc/BllScripts/assignOrg.js @@ -23,6 +23,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + if (json.statusCode != "200") { + json = $.parseJSON(json); + $(this).alertmsg('warn', json.message); + return; + } selected.reLoad(); }); }); @@ -35,6 +40,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + if (json.statusCode != "200") { + json = $.parseJSON(json); + $(this).alertmsg('warn', json.message); + return; + } selected.reLoad(); }); }); diff --git a/OpenAuth.Mvc/BllScripts/assignRes.js b/OpenAuth.Mvc/BllScripts/assignRes.js index 5239ea40..26689407 100644 --- a/OpenAuth.Mvc/BllScripts/assignRes.js +++ b/OpenAuth.Mvc/BllScripts/assignRes.js @@ -23,6 +23,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + if (json.statusCode != "200") { + json = $.parseJSON(json); + $(this).alertmsg('warn', json.message); + return; + } dlgList.reload(); }); }); @@ -35,6 +40,11 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + if (json.statusCode != "200") { + json = $.parseJSON(json); + $(this).alertmsg('warn', json.message); + return; + } dlgList.reload(); }); }); diff --git a/OpenAuth.Mvc/BllScripts/categoryManager.js b/OpenAuth.Mvc/BllScripts/categoryManager.js index 96c3085f..4bdc6124 100644 --- a/OpenAuth.Mvc/BllScripts/categoryManager.js +++ b/OpenAuth.Mvc/BllScripts/categoryManager.js @@ -214,7 +214,11 @@ var editDlg = function () { if (!v) return; //验证没通过 $("#editForm").bjuiajax('ajaxForm', { reload: false, - callback:function(json) { + callback: function (json) { + if (json.statusCode == "400") { + $(this).alertmsg('warn', json.message); + return null; + } list.reload(); ztree.reload(); } diff --git a/OpenAuth.Mvc/BllScripts/moduleElementMan.js b/OpenAuth.Mvc/BllScripts/moduleElementMan.js index 3c9108e6..65d1f2cd 100644 --- a/OpenAuth.Mvc/BllScripts/moduleElementMan.js +++ b/OpenAuth.Mvc/BllScripts/moduleElementMan.js @@ -39,9 +39,12 @@ $(document).ready(function () { }, function (data) { data = $.parseJSON(data); - if (data.statusCode == "200") { - thisDlg.reload(); + if (data.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; } + + thisDlg.reload(); }); }); }); @@ -185,6 +188,10 @@ var editEleDlg = function () { $("#editElementForm").bjuiajax('ajaxForm', { reload: false, callback: function (json) { + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } thisDlg.reload(); } }); diff --git a/OpenAuth.Mvc/BllScripts/modulemanager.js b/OpenAuth.Mvc/BllScripts/modulemanager.js index 29355e8b..8a075289 100644 --- a/OpenAuth.Mvc/BllScripts/modulemanager.js +++ b/OpenAuth.Mvc/BllScripts/modulemanager.js @@ -243,6 +243,10 @@ var editDlg = function () { $("#editForm").bjuiajax('ajaxForm', { reload: false, callback: function (json) { + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } list.reload(); ztree.reload(); } diff --git a/OpenAuth.Mvc/BllScripts/orgManager.js b/OpenAuth.Mvc/BllScripts/orgManager.js index b2b2462b..c63c2379 100644 --- a/OpenAuth.Mvc/BllScripts/orgManager.js +++ b/OpenAuth.Mvc/BllScripts/orgManager.js @@ -211,6 +211,10 @@ var editDlg = function () { $("#editForm").bjuiajax('ajaxForm', { reload: false, callback: function (json) { + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } list.reload(); ztree.reload(); } diff --git a/OpenAuth.Mvc/BllScripts/resourceManager.js b/OpenAuth.Mvc/BllScripts/resourceManager.js index fb475edc..72aa2763 100644 --- a/OpenAuth.Mvc/BllScripts/resourceManager.js +++ b/OpenAuth.Mvc/BllScripts/resourceManager.js @@ -201,6 +201,10 @@ var editDlg = function () { $("#editForm").bjuiajax('ajaxForm', { reload: false, callback: function (json) { + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } list.reload(); ztree.reload(); } diff --git a/OpenAuth.Mvc/BllScripts/roleManager.js b/OpenAuth.Mvc/BllScripts/roleManager.js index 1bc291fc..3c6891a5 100644 --- a/OpenAuth.Mvc/BllScripts/roleManager.js +++ b/OpenAuth.Mvc/BllScripts/roleManager.js @@ -192,6 +192,10 @@ var editDlg = function () { $("#editForm").bjuiajax('ajaxForm', { reload: false, callback: function (json) { + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } list.reload(); ztree.reload(); } diff --git a/OpenAuth.Mvc/BllScripts/usermanager.js b/OpenAuth.Mvc/BllScripts/usermanager.js index 864adccd..c23d6b6a 100644 --- a/OpenAuth.Mvc/BllScripts/usermanager.js +++ b/OpenAuth.Mvc/BllScripts/usermanager.js @@ -203,6 +203,10 @@ var editDlg = function () { $("#editForm").bjuiajax('ajaxForm', { reload: false, callback: function (json) { + if (json.statusCode != "200") { + $(this).alertmsg('warn', json.message); + return; + } list.reload(); ztree.reload(); } diff --git a/OpenAuth.Mvc/Controllers/BaseController.cs b/OpenAuth.Mvc/Controllers/BaseController.cs index e7da986c..997b7c5d 100644 --- a/OpenAuth.Mvc/Controllers/BaseController.cs +++ b/OpenAuth.Mvc/Controllers/BaseController.cs @@ -16,13 +16,12 @@ // // *********************************************************************** -using Infrastructure.Helper; -using OpenAuth.App.ViewModel; using OpenAuth.Mvc.Models; using System; -using System.Diagnostics; +using System.Configuration; using System.Linq; using System.Reflection; +using System.Web; using System.Web.Mvc; using OpenAuth.App; @@ -60,6 +59,16 @@ namespace OpenAuth.Mvc.Controllers ViewBag.Module = module; //为View显示服务,主要是为了显示按钮 } + var version = ConfigurationManager.AppSettings["version"]; + if (version == "demo") + { + HttpPostAttribute hobbyAttr = (HttpPostAttribute)Attribute.GetCustomAttribute(function, typeof(HttpPostAttribute)); + if (actionname.Contains("del") || hobbyAttr != null) //客户端提交数据 + { + throw new HttpException(400, "演示版本,不能进行该操作,当前模块:" + controllername +"/" +actionname); + } + } + base.OnActionExecuting(filterContext); } } diff --git a/OpenAuth.Mvc/Controllers/CategoryManagerController.cs b/OpenAuth.Mvc/Controllers/CategoryManagerController.cs index 22de51dd..50e2a361 100644 --- a/OpenAuth.Mvc/Controllers/CategoryManagerController.cs +++ b/OpenAuth.Mvc/Controllers/CategoryManagerController.cs @@ -45,11 +45,6 @@ namespace OpenAuth.Mvc.Controllers return JsonHelper.Instance.Serialize(models); } - public ActionResult Add(int id = 0) - { - return View(_app.Find(id)); - } - //添加或修改Category [HttpPost] public string Add(Category model) diff --git a/OpenAuth.Mvc/Controllers/ErrorController.cs b/OpenAuth.Mvc/Controllers/ErrorController.cs index 4433cc90..e124e46e 100644 --- a/OpenAuth.Mvc/Controllers/ErrorController.cs +++ b/OpenAuth.Mvc/Controllers/ErrorController.cs @@ -1,17 +1,54 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; using System.Web; using System.Web.Mvc; +using Infrastructure; +using OpenAuth.Mvc.Models; namespace OpenAuth.Mvc.Controllers { public class ErrorController : Controller { - // GET: Error - public ActionResult NoAccess() + public ActionResult Http404() { - return View(); + return Content("貌似URL不在~~", "text/plain"); + } + + /// + /// 演示版本禁止提交 + /// + public string DemoError() + { + Response.Charset = "utf-8"; + var response = new BjuiResponse + { + statusCode = "400", + message = "演示版本,不能进行此操作" + }; + return JsonHelper.Instance.Serialize(response); + } + + /// + /// 没有登录 + /// + /// ActionResult. + public ActionResult Http401() + { + return RedirectToAction("Index", "Login"); + } + + + public string Http500() + { + Response.Charset = "utf-8"; + var response = new BjuiResponse + { + statusCode = "500", + message = "服务器内部错误,请联系管理员" + }; + return JsonHelper.Instance.Serialize(response); } } } \ No newline at end of file diff --git a/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs b/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs index 006752a8..3eb21f35 100644 --- a/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs +++ b/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs @@ -22,7 +22,7 @@ using System.Web.Mvc; namespace OpenAuth.Mvc.Controllers { - public class ModuleElementManagerController : Controller + public class ModuleElementManagerController : BaseController { private readonly BjuiResponse _bjuiResponse = new BjuiResponse(); private ModuleElementManagerApp _app; @@ -31,18 +31,18 @@ namespace OpenAuth.Mvc.Controllers { _app = AutofacExt.GetFromFac(); } - + [Anonymous] public ActionResult Index(int id) { ViewBag.ModuleId = id; return View(); } - + [Anonymous] public ActionResult Get(int moduleId = 0) { return Json(_app.LoadByModuleId(moduleId)); } - + [Anonymous] [HttpPost] public string AddOrEditButton(ModuleElement button) { @@ -57,7 +57,7 @@ namespace OpenAuth.Mvc.Controllers } return JsonHelper.Instance.Serialize(_bjuiResponse); } - + [Anonymous] public string Del(string moduleElements) { try @@ -80,13 +80,14 @@ namespace OpenAuth.Mvc.Controllers /// The first identifier. /// The key. /// ActionResult. + [Anonymous] public ActionResult AssignModuleElement(int firstId, string key) { ViewBag.FirstId = firstId; ViewBag.ModuleType = key; return View(); } - + [Anonymous] public string LoadWithAccess(int tId, int firstId, string key) { return JsonHelper.Instance.Serialize(_app.LoadWithAccess(key, firstId, tId)); diff --git a/OpenAuth.Mvc/Controllers/RoleManagerController.cs b/OpenAuth.Mvc/Controllers/RoleManagerController.cs index 12125e6b..197cc1f2 100644 --- a/OpenAuth.Mvc/Controllers/RoleManagerController.cs +++ b/OpenAuth.Mvc/Controllers/RoleManagerController.cs @@ -23,11 +23,6 @@ namespace OpenAuth.Mvc.Controllers return View(); } - public ActionResult Add(int id = 0) - { - return View(_app.Find(id)); - } - //添加或修改角色 [HttpPost] public string Add(Role role) diff --git a/OpenAuth.Mvc/Global.asax.cs b/OpenAuth.Mvc/Global.asax.cs index d77d55a2..cef5efec 100644 --- a/OpenAuth.Mvc/Global.asax.cs +++ b/OpenAuth.Mvc/Global.asax.cs @@ -1,8 +1,10 @@ -using System.Web; +using System; +using System.Web; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using Infrastructure; +using OpenAuth.Mvc.Controllers; namespace OpenAuth.Mvc { @@ -20,5 +22,41 @@ namespace OpenAuth.Mvc LogHelper.Log("启动Web"); } + + + protected void Application_Error(object sender, EventArgs e) + { + var app = (MvcApplication)sender; + var context = app.Context; + var ex = app.Server.GetLastError(); + LogHelper.Fatal(ex.Message); + + context.Response.Clear(); + context.ClearError(); + var httpException = ex as HttpException; + var routeData = new RouteData(); + routeData.Values["controller"] = "error"; + routeData.Values["exception"] = ex; + routeData.Values["action"] = "http500"; + if (httpException != null) + { + + + switch (httpException.GetHttpCode()) + { + case 404: + routeData.Values["action"] = "http404"; + break; + case 401: //没有登录 + routeData.Values["action"] = "http401"; + break; + case 400: //演示版本,没有执行的权限 + routeData.Values["action"] = "DemoError"; + break; + } + } + IController controller = new ErrorController(); + controller.Execute(new RequestContext(new HttpContextWrapper(context), routeData)); + } } } diff --git a/OpenAuth.Mvc/OpenAuth.Mvc.csproj b/OpenAuth.Mvc/OpenAuth.Mvc.csproj index eb0b823e..6b1f590a 100644 --- a/OpenAuth.Mvc/OpenAuth.Mvc.csproj +++ b/OpenAuth.Mvc/OpenAuth.Mvc.csproj @@ -676,7 +676,7 @@ - + diff --git a/OpenAuth.Mvc/Views/Home/Main.cshtml b/OpenAuth.Mvc/Views/Home/Main.cshtml index 8007f14c..c3c91810 100644 --- a/OpenAuth.Mvc/Views/Home/Main.cshtml +++ b/OpenAuth.Mvc/Views/Home/Main.cshtml @@ -11,9 +11,9 @@

基于经典DDD架构的权限管理系统 

- -
+
+
QQ群:484498493
官方博客: http://www.cnblogs.com/yubaolee/
diff --git a/OpenAuth.Mvc/Views/Login/Index.cshtml b/OpenAuth.Mvc/Views/Login/Index.cshtml index 7c6d4e4e..f5d40daf 100644 --- a/OpenAuth.Mvc/Views/Login/Index.cshtml +++ b/OpenAuth.Mvc/Views/Login/Index.cshtml @@ -232,7 +232,10 @@
- +
+ 可以用admin(密码:admin) /test(密码:test) 查看不同账号登陆情况
+ Copyright © 2015 基于精典DDD的权限管理 - 点击以开发者账号登录 +
\ No newline at end of file diff --git a/OpenAuth.Mvc/Web.config b/OpenAuth.Mvc/Web.config index 099e0257..7f9c9726 100644 --- a/OpenAuth.Mvc/Web.config +++ b/OpenAuth.Mvc/Web.config @@ -58,14 +58,14 @@ + + - -