login页面,navbar优化

This commit is contained in:
yubaolee 2016-10-24 17:16:16 +08:00
parent e9f6336536
commit 53f7fe403b
8 changed files with 129 additions and 78 deletions

View File

@ -33,6 +33,8 @@ namespace OpenAuth.Mvc.Controllers
{ {
protected Response Result = new Response(); protected Response Result = new Response();
protected ModuleView CurrentModule; protected ModuleView CurrentModule;
protected string Controllername; //当前控制器小写名称
protected string Actionname; //当前Action小写名称
protected override void OnActionExecuting(ActionExecutingContext filterContext) protected override void OnActionExecuting(ActionExecutingContext filterContext)
{ {
@ -40,15 +42,15 @@ namespace OpenAuth.Mvc.Controllers
if (!AuthUtil.CheckLogin()) return; if (!AuthUtil.CheckLogin()) return;
var controllername = Request.RequestContext.RouteData.Values["controller"].ToString().ToLower(); Controllername = Request.RequestContext.RouteData.Values["controller"].ToString().ToLower();
var actionname = filterContext.ActionDescriptor.ActionName.ToLower(); Actionname = filterContext.ActionDescriptor.ActionName.ToLower();
var function = this.GetType().GetMethods().FirstOrDefault(u => u.Name.ToLower() == actionname); var function = this.GetType().GetMethods().FirstOrDefault(u => u.Name.ToLower() == Actionname);
if (function == null) if (function == null)
throw new Exception("未能找到Action"); throw new Exception("未能找到Action");
var authorize = function.GetCustomAttribute(typeof(AuthenticateAttribute)); var authorize = function.GetCustomAttribute(typeof(AuthenticateAttribute));
CurrentModule = AuthUtil.GetCurrentUser().Modules.FirstOrDefault(u => u.Url.ToLower().Contains(controllername)); CurrentModule = AuthUtil.GetCurrentUser().Modules.FirstOrDefault(u => u.Url.ToLower().Contains(Controllername));
//当前登录用户没有Action记录&&Action有authenticate标识 //当前登录用户没有Action记录&&Action有authenticate标识
if (authorize != null && CurrentModule == null) if (authorize != null && CurrentModule == null)
{ {
@ -59,7 +61,7 @@ namespace OpenAuth.Mvc.Controllers
var version = ConfigurationManager.AppSettings["version"]; var version = ConfigurationManager.AppSettings["version"];
if (version == "demo" && Request.HttpMethod == "POST") if (version == "demo" && Request.HttpMethod == "POST")
{ {
throw new HttpException(400, "演示版本,不能进行该操作,当前模块:" + controllername + "/" + actionname); throw new HttpException(400, "演示版本,不能进行该操作,当前模块:" + Controllername + "/" + Actionname);
} }
} }

View File

@ -39,7 +39,7 @@ namespace OpenAuth.Mvc.Controllers
{ {
if (moduleView.Children.Any()) if (moduleView.Children.Any())
{ {
sb.Append("<li class=\"\">\r\n"); sb.Append("<li class=\"\" id=\""+moduleView.Item.Id+"\">\r\n");
sb.Append("<a href=\"#\" class=\"dropdown-toggle\">\r\n"); sb.Append("<a href=\"#\" class=\"dropdown-toggle\">\r\n");
sb.Append("<i class=\"menu-icon fa "+moduleView.Item.IconName+"\"></i>\r\n"); sb.Append("<i class=\"menu-icon fa "+moduleView.Item.IconName+"\"></i>\r\n");
sb.Append("<span class=\"menu-text\">\r\n"); sb.Append("<span class=\"menu-text\">\r\n");
@ -57,7 +57,7 @@ namespace OpenAuth.Mvc.Controllers
} }
else else
{ {
sb.Append("<li class=\"\">\r\n"); sb.Append("<li class=\"\" id=\"" + moduleView.Item.Id + "\">\r\n");
sb.Append("<a href=\""+moduleView.Item.Url+"\">\r\n"); sb.Append("<a href=\""+moduleView.Item.Url+"\">\r\n");
sb.Append("<i class=\"menu-icon fa "+moduleView.Item.IconName+"\"></i>\r\n"); sb.Append("<i class=\"menu-icon fa "+moduleView.Item.IconName+"\"></i>\r\n");
sb.Append("<span class=\"menu-text\"> "+moduleView.Item.Name+ " </span>\r\n"); sb.Append("<span class=\"menu-text\"> "+moduleView.Item.Name+ " </span>\r\n");
@ -99,6 +99,8 @@ namespace OpenAuth.Mvc.Controllers
public ActionResult Navbar() public ActionResult Navbar()
{ {
ViewBag.NavBar = GetNavBar(); ViewBag.NavBar = GetNavBar();
if(CurrentModule != null)
ViewBag.CurrentNav = CurrentModule.Id;
return View(); return View();
} }
} }

View File

@ -3,13 +3,27 @@
} }
<div id="sidebar" class="sidebar responsive ace-save-state"> <div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript"> <script type="text/javascript">
try { ace.settings.loadState('sidebar') } catch (e) { } try {
ace.settings.loadState('sidebar')
} catch (e) {
}
$(function () {
var menuVal = "@ViewBag.CurrentNav";
if ("" != $.trim(menuVal)) {
console.log(menuVal);
$(".nav-list li").removeClass("active");
$(".nav-list li").removeClass("open");
$("#" + menuVal).addClass("active");
$("#" + menuVal).parent().show();
}
});
</script> </script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts"> <div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large"> <div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success"> <button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i> <i class="ace-icon fa fa-home"></i>
</button> </button>
<button class="btn btn-info"> <button class="btn btn-info">
@ -48,4 +62,5 @@
</div> </div>
<!-- /section:basics/sidebar.layout.minimize --> <!-- /section:basics/sidebar.layout.minimize -->
</div> </div>

View File

@ -1,78 +1,110 @@
@{ @{
Layout = null; Layout = null;
} }
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>AdminLTE 2 | Log in</title> <meta charset="utf-8" />
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'> <title>登陆页面 - OpenAuth.Net</title>
<!-- Bootstrap 3.3.4 -->
<meta name="description" content="User login page" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
<link href="/Content/plugins/bootstrap/css/bootstrap.css" rel="stylesheet" /> <link href="/Content/plugins/bootstrap/css/bootstrap.css" rel="stylesheet" />
<!-- Font Awesome Icons --> <!-- Font Awesome Icons -->
<link href="/Content/ace/css/font-awesome.min.css" rel="stylesheet" /> <link href="/Content/ace/css/font-awesome.min.css" rel="stylesheet" />
<!-- Theme style --> <!-- Theme style -->
<link href="/Content/ace/css/ace.css" rel="stylesheet" /> <link href="/Content/ace/css/ace.css" rel="stylesheet" />
<!-- iCheck -->
<link href="/Content/plugins/iCheck/square/blue.css" rel="stylesheet" type="text/css" /> <!-- bootstrap & fontawesome -->
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!-- text fonts -->
<!--[if lt IE 9]> <link rel="stylesheet" href="/Content/ace/css/ace-fonts.css" />
<script src="dist/js/html5shiv.min.js"></script>
<script src="dist/js/respond.min.js"></script>
<![endif]-->
</head> </head>
<body class="login-page">
<div class="login-box"> <body class="login-layout" style="background-image:url(/Content/img/01.jpg)">
<div class="login-logo"> <div class="main-container">
<a href="#"><b>OpenAuth</b>.NET</a> <div class="main-content">
</div><!-- /.login-logo --> <div class="row">
<div class="login-box-body"> <div class="col-sm-10 col-sm-offset-1">
<p class="login-box-msg">Sign in to start your session</p> <div class="login-container">
<form action="" method="post"> <div class="center">
<div class="form-group has-feedback"> <h1>
<input type="email" class="form-control" placeholder="Email" /> <i class="ace-icon fa fa-users blue"></i>
<span class="glyphicon glyphicon-envelope form-control-feedback"></span> <span class="red">OpenAuth</span>
</div> <span class="white" id="id-text2">.Net</span>
<div class="form-group has-feedback"> </h1>
<input type="password" class="form-control" placeholder="Password" /> <h4 class="blue" id="id-company-text">&copy; Hifo group</h4>
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
<label>
<input type="checkbox"> Remember Me
</label>
</div> </div>
</div><!-- /.col -->
<div class="col-xs-4"> <div class="space-6"></div>
<button type="submit" class="btn btn-primary btn-block btn-flat">登陆</button>
</div><!-- /.col --> <div class="position-relative">
</div> <div id="login-box" class="login-box visible widget-box no-border">
</form> <div class="widget-body">
<div class="social-auth-links text-center"> <div class="widget-main">
<p>- OR -</p> <h4 class="header blue lighter bigger">
<a href="/Login/LoginByDev" class="btn btn-block btn-social btn-facebook btn-flat"><i class="fa fa-user"></i> 点击以开发者账号登录</a> <i class="ace-icon fa fa-coffee"></i>
<a href="http://localhost:52789/SSO/Login?appkey=@ViewBag.AppKey" class="btn btn-block btn-social btn-google-plus btn-flat"><i class="fa fa-google-plus"></i>OpenAuth.net第三方登陆功能</a> 请输入您的登录信息
</div><!-- /.social-auth-links --> </h4>
</div><!-- /.login-box-body -->
</div><!-- /.login-box --> <div class="space-6"></div>
<!-- jQuery 2.1.4 -->
<script src="/Content/plugins/jQuery/jQuery-2.1.4.min.js"></script> <!-- Login form -->
<!-- Bootstrap 3.3.2 JS --> @using (Html.BeginForm("Index", "Login", FormMethod.Post, new { @class = "form-horizontal" }))
<script src="/Content/plugins/bootstrap/js/bootstrap.js"></script> {
<!-- iCheck --> <!-- Email -->
<script src="/Content/plugins/iCheck/icheck.min.js" type="text/javascript"></script> <div class="form-group">
<script> <label class="control-label col-lg-3" for="inputEmail">用户名</label>
$(function () { <div class="col-lg-9">
$('input').iCheck({ <input type="text" class="form-control" id="inputEmail" placeholder="用户名" name="username">
checkboxClass: 'icheckbox_square-blue', </div>
radioClass: 'iradio_square-blue', </div>
increaseArea: '20%' // optional <!-- Password -->
}); <div class="form-group">
}); <label class="control-label col-lg-3" for="inputPassword">密码</label>
</script> <div class="col-lg-9">
<input type="password" class="form-control" id="inputPassword" placeholder="密码" name="password">
</div>
</div>
<div class="space"></div>
<div class="clearfix">
<label class="inline">
<span class="lbl"> @ViewBag.Msg</span>
</label>
<button type="submit" class="width-35 pull-right btn btn-sm btn-primary">
<i class="ace-icon fa fa-key"></i>
<span class="bigger-110">登录</span>
</button>
</div>
}
<div class="social-or-login center">
<span class="bigger-110">Or Login Using</span>
</div>
<div class="space-6"></div>
<div class="center">
<a href="/Login/LoginByDev" class="btn btn-block btn-social btn-facebook btn-flat"><i class="fa fa-user"></i> 点击以开发者账号登录</a>
<a href="http://localhost:52789/SSO/Login?appkey=@ViewBag.AppKey" class="btn btn-block btn-social btn-google-plus btn-flat"><i class="fa fa-user-secret"></i>OpenAuth.net第三方登陆功能</a>
</div>
</div><!-- /.widget-main -->
</div><!-- /.widget-body -->
</div><!-- /.login-box -->
</div><!-- /.position-relative -->
</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.main-content -->
</div><!-- /.main-container -->
<!-- basic scripts -->
</body> </body>
</html> </html>

View File

@ -15,7 +15,7 @@
</div> </div>
<div class="site-tips" style="display: inline-block; height: 210px; width: 340px; padding: 10px; margin-left: 10px; vertical-align: top;" id="demo2-view"> <div class="site-tips" style="display: inline-block; height: 210px; width: 340px; padding: 10px; vertical-align: top;" id="demo2-view">
<form class="layui-form " action="" id="moduleElements"> <form class="layui-form " action="" id="moduleElements">
</form> </form>
</div> </div>

View File

@ -16,7 +16,7 @@
</div> </div>
<div class="site-tips" style="display: inline-block; height: 210px; width: 340px; padding: 10px; margin-left: 10px; vertical-align: top;" id="demo2-view"> <div class="site-tips" style="display: inline-block; height: 210px; width: 340px; padding: 10px;vertical-align: top;" id="demo2-view">
<form class="layui-form " action="" id="resources"></form> <form class="layui-form " action="" id="resources"></form>
</div> </div>

View File

@ -16,7 +16,7 @@
</div> </div>
<div class="site-tips" style="display: inline-block; height: 210px; width: 340px; padding: 10px; margin-left: 10px; vertical-align: top;" id="demo2-view"> <div class="site-tips" style="display: inline-block; height: 210px; width: 340px; padding: 10px; vertical-align: top;" id="demo2-view">
<form class="layui-form " action="" id="roles"></form> <form class="layui-form " action="" id="roles"></form>
</div> </div>

View File

@ -146,7 +146,7 @@
<li class="divider"></li> <li class="divider"></li>
<li> <li>
<a href="#"> <a href="/Login/Logout">
<i class="ace-icon fa fa-power-off"></i> <i class="ace-icon fa fa-power-off"></i>
注销 注销
</a> </a>