zoukankan      html  css  js  c++  java
  • 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"]

  • 相关阅读:
    Shell编程——基于IBM培训教程的总结
    flex上下固定中间滚动布局
    exe 转服务
    itextcsharp使用
    devices detect
    [转]Java api 全集 【API JDK1.6中文版】
    JavaScript 项目优化总结
    服务程序打包
    knockoutjs
    C#压缩《收藏》
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/4544939.html
Copyright © 2011-2022 走看看