当前位置: 首页 > news >正文

网络搜索引擎优化/天津抖音seo

网络搜索引擎优化,天津抖音seo,南通住房和城乡建设厅网站首页,做网站用最新软件在Asp.net中实现登录验证可以设置用户登录验证页面为默认的路由处理路径,访问其它页面时候,在页面控制器中增加 CheckAuthority属性,要求进行登录认证后才能访问相关控制器,CheckAuthority属性定义代码如下示例: /…

在Asp.net中实现登录验证可以设置用户登录验证页面为默认的路由处理路径,访问其它页面时候,在页面控制器中增加    CheckAuthority属性,要求进行登录认证后才能访问相关控制器,CheckAuthority属性定义代码如下示例:

//==============属性继承自AuthorizeAttribute,需重写OnAuthorization方法===========public class CheckAuthority: AuthorizeAttribute{public override void OnAuthorization(AuthorizationContext filterContext){if (HttpContext.Current.Session["UserID"] == null || !HttpContext.Current.Request.IsAuthenticated){if (filterContext.HttpContext.Request.IsAjaxRequest()){filterContext.HttpContext.Response.StatusCode = 302; //Found Redirection to another page. Here- login page. Check Layout ajaxError() script.filterContext.HttpContext.Response.End();}else{filterContext.Result = new RedirectResult(System.Web.Security.FormsAuthentication.LoginUrl + "?ReturnUrl=" +filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.RawUrl));}}else{//Code HERE for page level authorization}}}

CheckAuthority使用代码如下示例:

[CheckAuthority]public class HomeController : Controller{public ActionResult Index(){return View();}
}

登录认证控制器代码如下示意:

 public class LoginController : Controller{
//================获取登录页面========================[HttpGet]public ActionResult Login(string returnURL){return View();}
//============提交登录信息,要求加入防跨站属性声明[HttpPost][ValidateAntiForgeryToken]public ActionResult Login(LoginVM Logininfo){if (Logininfo.Username == "admin" && Logininfo.Password == "admin"){Session["UserID"] = Logininfo.Username;Logininfo.ReturnURL = "/Home/Index";SignInRemember(Logininfo.Username, true);return RedirectToLocal(Logininfo.ReturnURL);}               else{ViewBag.ErrorMessage = "用户认证失败,请检查您的账户信息";return View();}}//GET: SignInAsync   private void SignInRemember(string userName, bool isPersistent = false){// Clear any lingering authencation dataFormsAuthentication.SignOut();// Write the authentication cookieFormsAuthentication.SetAuthCookie(userName, isPersistent);}private ActionResult RedirectToLocal(string returnURL = ""){try{// If the return url starts with a slash "/" we assume it belongs to our site// so we will redirect to this "action"if (!string.IsNullOrWhiteSpace(returnURL) && Url.IsLocalUrl(returnURL))return Redirect(returnURL);// If we cannot verify if the url is local to our host we redirect to a default locationreturn RedirectToAction("Index", "Home");}catch{throw;}}
}

登录页视图代码示意:

<body><div class="pop-div"><div class="log-close"></div><div class="log-cloud cloud1"></div><div class="log-cloud cloud2"></div><label class="prompt-label">用户登录</label>
@using (Html.BeginForm("Login", "Login", FormMethod.Post,new { @id="submitForm"}))
{
//===========增加防跨站代码======================    
@Html.AntiForgeryToken()
//===========增加隐藏的提交url========================@Html.HiddenFor(s => s.ReturnURL)<div class="rows">@Html.Label("用户名", new { @class = "labelpp" })@Html.TextBoxFor(s => s.Username, new { @class= "inputpp" })          </div><div class="rows">@Html.Label("口令", new { @class = "labelpp" })@Html.TextBoxFor(s=>s.Password, new {  @class = "inputpp" })</div class="rows"><button type ="button" class="loginBtn" id="btnIn">Login</button>
}@if (ViewBag.ErrorMessage != null){<div class="rows">@Html.Label( "用户认证失败", new { @id = "promptMsg", @style = "color:red"})</div>}<div class="rows">@Html.Label("请检查输入", new { @id = "errorMsg", @style = "color:red" ,@type= "hidden" })</div></div>        
</body>

控制器中注销方法的代码:

        [HttpGet]public ActionResult Logout(){FormsAuthentication.SignOut();Session.Clear();System.Web.HttpContext.Current.Session.RemoveAll();return Redirect("/Login/Login");}

 

相关文章: