zoukankan      html  css  js  c++  java
  • SSO 单点登录

    Client:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.Mvc;
    
    namespace SiteA.Controllers
    {
    
    
        public class Info
        {
    
            public string UserName { get; set; }
    
            public  string Passward { get; set; }
    
        }
        public class ControllerBasic : Controller
        {
            protected override void OnActionExecuting(ActionExecutingContext filterContext)
            {
    
                if (Session["Info"] != null)
                {
                    // 拿seesion中的token  验证登录状态,如果已经登录,直接返回
                    //  Do:  调用sso 的webservice
    
                    var url = Request.Url.AbsoluteUri;
                    //filterContext.Result =  new RedirectResult(url.Contains("?") ? url.Substring(0, url.LastIndexOf("?")) : url); ;
                    //Response.Redirect(url.Contains("?")?url.Substring(0,url.LastIndexOf("?")):url);
                    // 如果验证成功
                    return;
                    // 验证失败
                   // Response.Redirect($"https://localhost:44325/home/Login?backUrl=" + $"{ System.Web.HttpUtility.UrlEncode(Request.Url.AbsoluteUri)}");
                }
                if (Request["token"] != null)
                {
                    var token = Request["Token"];
                    //  去主站获取凭证
                    Info Info = new Info { UserName="hnzheng",Passward="123"}; // 包含用户名、姓名、过期时间等
                    if (Info == null)
                    {
                        // 跳转到单点登录页面
                        Response.Redirect($"https://localhost:44325/home/Login?backUrl=" + $"{ System.Web.HttpUtility.UrlEncode(Request.Url.AbsoluteUri)}");
                    }
                    else
                    {
                        // 保存凭证
                        Session["Info"] = new
                        {
                            UserName = Info.UserName,
                            Passward = Info.Passward,
                            Token = token
                            // 等等其他信息
                        };
    
                    }             
                }
                else
                {
                   
                    Response.Redirect( $"https://localhost:44325/home/Login?backUrl=" + $"{ System.Web.HttpUtility.UrlEncode(Request.Url.AbsoluteUri)}");
                }
    
    
    
    
    
    
            }
    
        }
    }
    

    SSo:

    public ActionResult Login() { var userName = Request.Form["UserName"]; var passard = Request.Form["Paassward"]; var returnUrl = Request.Url.AbsoluteUri; //Do:验证用户名和密码 // 模拟验证 if (userName == "hnzheng" && passard == "123") { var token = GetToken(); // 保存用户名和密码,可用其他方式替代 { System.Runtime.Caching.MemoryCache memeryCache = MemoryCache.Default; CacheItemPolicy cacheItemPolicy = new CacheItemPolicy(); cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddDays(1); // Session["UserInfo"]=$"{userName}|{passard}"; memeryCache.Add(new CacheItem(token, "hnzheng|123"), cacheItemPolicy); } // 跳转到主站的首页 { // 解析url string url = Request.Url.AbsoluteUri; if (!string.IsNullOrEmpty(url)) { GoForward(url,token); } } RedirectToAction("Home", "index"); } else ViewBag.Message = "用户名或密码不正确!"; return View(); }

      

  • 相关阅读:
    启明星门户网站Portal发布V4.5,并兼论部分功能的实现
    修改SQL数据库dbo所有者
    iphone& android 开发指南 http://mobile.tutsplus.com
    启明星会议室预定系统V5.0.0.0版本说明
    启明星Portal企业内部网站V4.3版 附演示地址 http://demo.dotnetcms.org
    在winform程序里实现最小化隐藏到windows右下角
    【门户网站】启明星Portal系统里,关于天气预报调用的说明
    获取客户端经纬度坐标
    修改表名或者列名SQL
    ER图
  • 原文地址:https://www.cnblogs.com/hnzheng/p/12747165.html
Copyright © 2011-2022 走看看