• asp.net mvc url应用


    //url加密与解密
    string
    res1 = HttpUtility.UrlEncode("7Z2K5Lgk/iI="); //值是7Z2K5Lgk%2fiI%3d string res2 = HttpUtility.UrlEncode(res1); //值是: 7Z2K5Lgk%252fiI%253d string res3 = HttpUtility.UrlDecode(res2); //值是7Z2K5Lgk%2fiI%3d string res4 = HttpUtility.UrlDecode(res3);

    //值是7Z2K5Lgk/iI=
    using GiftWeb.Dao;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    using System.Web;
    using System.Web.Mvc;
    
    namespace GiftWeb.Controllers
    {
        public class LoginController : Controller
        {
            //
            // GET: /Login/
    
            public ActionResult Index()
            {
                //1.当session自动过期
                string returnUrl = Request.RawUrl;
    
                string url = string.Empty;
    
                if (!Regex.IsMatch(returnUrl, @"^/Login/Index"))
                { 
                    url = HttpUtility.UrlEncode(returnUrl);
                }
                //获取退出时的ulr地址
                url = Request["returnUrl"];
                ViewBag.returnUrl = url;
    
                return View();
            }
    
    
            [HttpPost]
            public ActionResult Index(string loginname, string password)
            {
                
                using (GiftDBEntities db = new GiftDBEntities())
                {
                    var userinfo = db.SysUserInfo.Where(u => u.LoginName == loginname && u.Password == password).FirstOrDefault();
                    if (userinfo == null)
                    {
                        ViewBag.msg = "登录名或密码错误";
                        return View();
                    }
                    else
                    {
                        //获取退出时的ulr地址
                        string url = Request["returnUrl"];
                        //对url解密
                        string result = HttpUtility.UrlDecode(url);
                        Session["sysuserInfo"] = userinfo;
    
                        if (string.IsNullOrEmpty(url))
                        {
                            return RedirectToAction("Index", "TopicInfo");
                        }
                        else
                        {
                            return RedirectPermanent(result);
                        }
                    }
                }
            }
    
            public ActionResult Logout()
            {
                //获取当前的url
                string url = Request["returnUrl"];
                //将url加密
                string result = HttpUtility.UrlEncode(url);
                //让session过期
                Session.Abandon();
                //跳转到登录页面
                return Content(result);
            }
    
        }
    }
     <script type="text/javascript">
    
            function logout()
            {
                var url = "@Request.RawUrl";
                alert(url);
                $.post("/Login/Logout?returnUrl="+url, function (data) {
                    if (data != null)
                    {
                        window.location = "/Login/Index?returnUrl=" + data;
                    }
                });
            }
        </script>

    URL的获取很简单,ASP.NET通用:
    【1】
    获取 完整url

    (协议名+域名+虚拟目录名+文件名+参数)

    string url=Request.Url.ToString();

    【2】获取 虚拟目录名+页面名+参数:

    string url=Request.RawUrl;
    (或 string
    url=Request.Url.PathAndQuery;)

    【3】获取
    虚拟目录名+页面名:
    string url=HttpContext.Current.Request.Url.AbsolutePath;
    (或
    string url= HttpContext.Current.Request.Path;)


    【4】获取 域名:
    string
    url=HttpContext.Current.Request.Url.Host;


    【5】获取 参数:
    string url=
    HttpContext.Current.Request.Url.Query;



    【6】获取 端口:
    Request.Url.Port


    二、当前controller、action的获取
    RouteData.Route.GetRouteData(this.HttpContext).Values["controller"]
    RouteData.Route.GetRouteData(this.HttpContext).Values["action"]

    RouteData.Values["controller"]
    RouteData.Values["action"]

    如果在视图中可以用
    ViewContext.RouteData.Route.GetRouteData(this.Context).Values["controller"]
    ViewContext.RouteData.Route.GetRouteData(this.Context).Values["action"]

    ViewContext.RouteData.Values["controller"]
    ViewContext.RouteData.Values["action"]

  • 相关阅读:
    Github 代码在线在vscode中打开
    TP5如何查询字段为空
    浏览器总是报 'https://static.hae123.cn/gc/gc3.js 错误
    Sublime 复制到word 如何保留样式?
    pdf 在浏览器中是下载,而不是打开如何实现?
    Shell脚本中的set指令,比如set -x 和 set -e【转】
    Python面向对象进阶【转】
    Redis为什么变慢了?常见延迟问题定位与分析【转】
    史上最全的 Linux Shell 文本处理工具集锦【转】
    Linux运维常用命令总结【转】
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/4544939.html
Copyright © 2020-2023  润新知