.net MVC使用Session驗證用戶登錄(4)
用最簡單的Session方式記錄用戶登錄狀態(tài)
1.添加DefaultController控制器,重寫OnActionExecuting方法,每次訪問控制器前觸發(fā)
public class DefaultController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
var userName = Session["UserName"] as String;
if (String.IsNullOrEmpty(userName))
{
//重定向至登錄頁面
filterContext.Result = RedirectToAction("Index", "Login", new { url = Request.RawUrl});
return;
}
}
}
2.登錄控制器
public class LoginController : Controller
{
// GET: Login
public ActionResult Index(string ReturnUrl)
{
if (Session["UserName"] != null)
{
return RedirectToAction("Index", "Home");
}
ViewBag.Url = ReturnUrl;
return View();
}
[HttpPost]
public ActionResult Index(string name, string password, string returnUrl)
{
/*
添加驗證用戶名密碼代碼
*/
Session["UserName"] = name;
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("http://") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
// POST: /Account/LogOff
[HttpPost]
public ActionResult LogOff()
{
Session["UserName"] = null;
return RedirectToAction("Index", "Home");
}
}
3.需要驗證的控制器繼承DefaultController
public class HomeController : DefaultController
{
public ActionResult Index()
{
return View();
}
}
這種方式適合比較小的項目
優(yōu)點:簡單,易開發(fā)
缺點:無法記錄登錄狀態(tài),而且Session方式容易丟失
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后臺管理系統(tǒng)之前端頁面框架構(gòu)建源碼分享
- asp.net CommunityServer中的wwwStatus
- .Net Core簡單使用Mvc內(nèi)置的Ioc(續(xù))
- .Net Core簡單使用Mvc內(nèi)置的Ioc
- Spring.Net控制反轉(zhuǎn)IoC入門使用
- ASP.NET Core應(yīng)用中與第三方IoC/DI框架的整合
- MVC使用Spring.Net應(yīng)用IOC(依賴倒置)學(xué)習(xí)筆記3
- .net MVC使用IPrincipal進行Form登錄即權(quán)限驗證(3)
- .NET Unity IOC框架使用實例詳解
相關(guān)文章
.NET使用?OpenTelemetry?Traces?追蹤應(yīng)用程序的方法
OpenTelemetry Traces是OpenTelemetry提供的一種遙測數(shù)據(jù)類型,用于記錄和描述在分布式系統(tǒng)中的單個操作或工作單元的生命周期,這篇文章主要介紹了.NET中使用OpenTelemetry Traces追蹤應(yīng)用程序,需要的朋友可以參考下2024-06-06
ASP.NET Core Api網(wǎng)關(guān)Ocelot的使用初探
這篇文章主要介紹了ASP.NET Core Api網(wǎng)關(guān)Ocelot的使用初探,幫助大家更好的理解和學(xué)習(xí)使用.NET技術(shù),感興趣的朋友可以了解下2021-03-03
Asp.net中static變量和viewstate的使用方法(謹慎)
如在頁面中統(tǒng)計某個按鈕被按下的次數(shù),先在類中OnClick事件的處理過程前定義一static變量times,則每次調(diào)用該按鈕的OnClick事件時,令times增1即可,非常方便,接下來詳細介紹,感興趣的朋友可以了解下2013-01-01
asp.net 頁面間傳值與跳轉(zhuǎn)的區(qū)別
通過Server.Transfer("b.aspx") 與Response.Redirect("b.aspx")的區(qū)別2010-04-04
SqlCommandBuilder類批量更新excel或者CSV數(shù)據(jù)的方法
這篇文章主要介紹了SqlCommandBuilder類批量更新excel或者CSV數(shù)據(jù)的方法,需要的朋友可以參考下2015-10-10
asp.net gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁
這篇文章主要介紹了asp.net gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁,可使用上下鍵選中行,選中后點擊修改,textbox獲得gridview中的代碼的數(shù)據(jù),需要的朋友可以參考下2014-12-12

