AspNet MVC4 教学-11:Asp.Net MVC4 默认Authorize及自定义Authorize快速Demo
2015-05-07 10:27
423 查看
建立Basic类型的Project
1.HomeController.cs:
2.Models目录下的文件:
LoginModel.cs:
MyAuthorizeAttribute.cs:
Index.cshtml:
Login.cshtml:
ShowDetails2.cshtml:
ShowTip.cshtml:
4.Web.config修改一处:
1.HomeController.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcAuthorizeTest.Models; using System.Web.Security; namespace MvcAuthorizeTest.Controllers { public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } public ActionResult Login() { return View(); } [HttpPost] public ActionResult Login(LoginModel login) { if (login.UserName == "admin" && login.Password == "123456") { FormsAuthentication.SetAuthCookie(login.UserName, false); return Redirect("/Home/ChangePassword"); } return View(); } public ActionResult ChangePassword() { return View(); } [Authorize] public ActionResult Logout() { FormsAuthentication.SignOut(); return Redirect("/Home/Login"); } [Authorize] public ActionResult ShowDetails() { return View(); } [Authorize] [MyAuthorizeAttribute] public ActionResult ShowDetails2() { return View(); } public ActionResult ShowTip() { return View(); } } }
2.Models目录下的文件:
LoginModel.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MvcAuthorizeTest.Models { public class LoginModel { public string UserName { set; get; } public string Password { set; get; } } }
MyAuthorizeAttribute.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcAuthorizeTest.Models { public class MyAuthorizeAttribute : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { //return base.AuthorizeCore(httpContext); return DateTime.Now.Minute % 2 == 0; } protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { filterContext.HttpContext.Response.Redirect("/Home/ShowTip"); //base.HandleUnauthorizedRequest(filterContext); } } }3.Views/Home目录下的View文件如下:
Index.cshtml:
@{ ViewBag.Title = "Index"; } <h2>Index</h2> @Html.ActionLink("Login","Login") @Html.ActionLink("Logout","Logout") <hr /> @Html.ActionLink("ShowDetails", "ShowDetails") @Html.ActionLink("ShowDetails2", "ShowDetails2")
Login.cshtml:
@model MvcAuthorizeTest.Models.LoginModel @{ ViewBag.Title = "Login"; } <h2>Login</h2> @using (Html.BeginForm("Login","Home",FormMethod.Post)) { @Html.ValidationSummary(true) <fieldset> <legend>LoginModel</legend> <div class="editor-label"> @Html.LabelFor(model => model.UserName) </div> <div class="editor-field"> @Html.EditorFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName) </div> <div class="editor-label"> @Html.LabelFor(model => model.Password) </div> <div class="editor-field"> @Html.EditorFor(model => model.Password) @Html.ValidationMessageFor(model => model.Password) </div> <p> <input type="submit" value="Create" /> </p> </fieldset> } @Html.ActionLink("返回主页","Index") @section Scripts { @Scripts.Render("~/bundles/jqueryval") }ChangPassword.cshtml:
@{ ViewBag.Title = "ChangePassword"; } <h2>ChangePassword</h2> ..................... @Html.ActionLink("返回主页","Index")ShowDetails.cshtml:
@{ ViewBag.Title = "ShowDetails"; } <h2>ShowDetails</h2> @Html.ActionLink("返回主页","Index")
ShowDetails2.cshtml:
@{ ViewBag.Title = "ShowDetails2"; } <h2>ShowDetails2</h2> @Html.ActionLink("返回主页","Index")
ShowTip.cshtml:
@{ ViewBag.Title = "ShowTip"; } <h2>ShowTip</h2> 时间分值未到偶数. @Html.ActionLink("返回主页","Index")
4.Web.config修改一处:
<authentication mode="Forms"> <forms loginUrl="~/Home/Login"</strong> timeout="2880" /> </authentication>
相关文章推荐
- AspNet MVC4 教学-27:Asp.Net MVC4 自定义helper及function的快速Demo
- AspNet MVC4 教学-18:Asp.Net MVC4 客户端验证和服务端验证快速Demo
- AspNet MVC4 教学-28:Asp.Net MVC4 Ajax技术实现除法取整取余快速Demo
- AspNet MVC4 教学-29:Asp.Net MVC4 jQuery计时器读取服务器时间的Ajax技术快速Demo
- AspNet MVC4 教学-13:Asp.Net MVC4 过滤器等技术快速Demo
- AspNet MVC4 教学-23:Asp.Net MVC4 Display And Editor 模板技术快速应用Demo
- AspNet MVC4 教学-24:Asp.Net MVC4 Url及Html的Encode技术快速Demo
- AspNet MVC4 教学-14:Asp.Net MVC4 ViewBag等数据传输技术快速比较Demo
- AspNet MVC4 教学-15:Asp.Net MVC4 TempData数据传输技术快速Demo
- AspNet MVC4 教学-21:Asp.Net MVC4 使用Ajax技术获取服务器时间快速Demo
- AspNet MVC4 教学-12:Asp.Net MVC4 Session等技术快速Demo
- AspNet MVC4 教学-9:Asp.Net MVC4 利用Layout的几种方法的快速Demo
- AspNet MVC4 教学-20:Asp.Net MVC4 Routing技术快速应用Demo
- AspNet MVC4 教学-22:Asp.Net MVC4 Partial View 技术快速应用Demo
- AspNet MVC4 教学-25:Asp.Net MVC4 强弱类型View等技术快速对比Demo
- AspNet MVC4 教学-26:Asp.Net MVC4 原生态Sql技术快速应用Demo
- AspNet MVC4 教学-16:Asp.Net MVC4 Session及Cookie快速比较Demo
- AspNet MVC4 教学-27:Asp.Net MVC4 自己定义helper及function的高速Demo
- AspNet MVC4 教学-17:Asp.Net MVC4 全局对象Application快速Demo
- AspNet MVC4 教学-22:Asp.Net MVC4 Partial View 技术高速应用Demo