//检查登录 パブリッククラスCheckLoginFilter:IAuthorizationFilter { 公共ボイドOnAuthorization(AuthorizationContext filterContext) { //不验证属性则只需取值 場合(filterContext.ActionDescriptor.IsDefined(typeof演算(AllowAnonymousAttribute)、真)|| filterContext.ActionDescriptor.ControllerDescriptor .IsDefined(typeof演算(AllowAnonymousAttribute)、TRUE)) { IF(filterContext.HttpContext.Request.Cookies [ "トークン"] = NULL){! 文字列トークン= filterContext.HttpContext.Request.Cookies [ "トークン"]の値。 (トークン!= "")であれば { //如果クッキーの存在の则判断セッション IF(filterContext.HttpContext.Session [トークン] == NULL) { GuserService BLL =新しいGuserService()。 GuserDTOモデル= bll.GetUserByToken(トークン)。 IF(モデル== NULL){ リターン。 } filterContext.HttpContext.Session [トークン] =モデル。 filterContext.Controller.ViewBag.UserName = model.userName。 filterContext.Controller.ViewBag.Uid = model.id。 } 他 { GuserDTOモデル=(GuserDTO)filterContext.HttpContext.Session [トークン]。 filterContext.Controller.ViewBag.UserName = model.userName。 filterContext.Controller.ViewBag.Uid = model.id。 返します。 } } 他{ 返します。 } } を返します。 } 他{ 列= actionNameのfilterContext.ActionDescriptor.ActionName。 文字列CTRLNAME = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName。 文字列にreturnurl = + CTRLNAME + "/" + actionNameの"にreturnurl = /?"; //判断储存トークン的クッキー存在与否 IF(filterContext.HttpContext.Request.Cookies [ "トークン"] == NULL) { filterContext.Result =新しいRedirectResult( "/ホーム/ログイン" +にreturnurl)。 } 他{ 文字列トークン= filterContext.HttpContext.Request.Cookies [ "トークン"]の値。 IF(トークン== "") { filterContext。 } 他 { //如果クッキー存在则判断セッション IF(filterContext.HttpContext.Session [トークン] == NULL) { GuserServiceのBLL =新しいGuserService()。 GuserDTOモデル= bll.GetUserByToken(トークン)。 filterContext.HttpContext.Session [トークン] =モデル。 filterContext.Controller.ViewBag.UserName = model.userName。 filterContext.Controller.ViewBag.Uid = model.id。 } 他{ GuserDTOモデル=(GuserDTO)filterContext.HttpContext.Session [トークン]。 filterContext.Controller.ViewBag.UserName = model.userName。 filterContext.Controller.ViewBag.Uid = model.id。 } } } } } }