1.首先建立3个MVC Web网站 一个登录中心SSO 以及两个其他网站如:test1,test2
2:在IIS管理器中发布建立的三个网站
3:三个MVC皆添加一个用户信息类和上下文类 如下:
//用户信息类
public class UserInfo
{
public string Name { get; set; }
public string Pwd { get; set; }
}
//上下文的类
public class UserInfoContext
{
public static UserInfoContext Context =new UserInfoContext();
//创建Key
private string SessionKey = "USERINFO_KEY";
//存储对象及会话
public HttpSessionState httpSessionState => HttpContext.Current.Session;
//存储用户对象
public UserInfo userInfo
{
get
{
return httpSessionState[SessionKey] as UserInfo;
}
set
{
httpSessionState[SessionKey] = value;
}
}
}
4:引用Redis,每个项目管理NewGet包安装StackExchange.Redis安装包
5:SSO登录中心项目的Web.config中配置AppSettings节点
<!--Redis服务器-->
<add key="RedisServer" value="127.0.0.1" />
<!--过期时间-->
<add key="Timeout" value="30" />
6:test1,test2项目的Web.config中配置AppSettings节点
<!--sso验证服务器-->
<add key="UserAuthUrl" value="http://www.sso.com" />//登录中心发布网址的主机名
<!--Redis服务器-->
<add key="RedisServer" value="127.0.0.1" />
<!--过期时间-->
<add key="Timeout" value="30" />
7:SSO的Home添加Login.cshtml
@{ Layout = null;}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>管理员登陆 - 统一权限管理平台</title>
<link rel="stylesheet" href="~/Scripts/static/common/layui/css/layui.css">
<link rel="stylesheet" href="~/Scripts/static/admin/css/login.css">
<script src="~/Scripts/static/common/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/static/common/layui/layui.js"></script>
<script src="~/Scripts/static/admin/js/canvas.js"></script>
</head>
<body id="login">
<div class="login">
<h2>统一权限管理平台</h2>
<form class="layui-form" method="post" action="">
<div class="layui-form-item">
<input type="username" name="Name" id="username" placeholder="用户名" required lay-verify="required" class="layui-input">
<i class="layui-icon input-icon">&am