实现sso系统的主要难点:
1:不能直接访问数据库,有安全隐患,而且还容易乱套。
2:多个系统需要进行单点登录,逻辑需要严谨,能支持N多系统、而不只是少数几个系统。
3:代码不能过于复杂,需要简洁,灵活支持本地部署,单点部署,集群部署,相同的代码可以通过部署配置灵活实现服务段(sso)、本地段(子网站)功能。
4:多系统的权限也可以灵活判断,不能访问数据库,需要进行远程服务调用,而且还需要对外部系统能提供调用接口。
5:需要有一定的安全性,能防止注入攻击等等。
6:权限定义需要非常灵活,可以定义10个权限,也可以定义100个权限,可以根据url进行权限判断,同时可以是n多个业务系统。
7:需要稳定,2周内就搞定,1周后交付测试,而不是需要研究2个月才能搞定,或者研究2年。
 
单点登录常见需求:
   跨应用、跨域、跨机器的单点登录。
1、流程:
   a) 用户直接访问门户url,登录成功后跳转到默认应用的url。
程序里需要引用2个Dll,通用权限管理系统组件的,这2个dll主要实现权限判断,登录功能等。
下面是登录页面的位置
这里是MVC默认的登录页面,
上图是需要登录的功能定义部分。
在 MVC 里加上 [NeedAuthorize] 就可以默认要求登录了。不登录不允许访问了。

   b) 用户直接访问应用url,若未登录,跳转到登录页面的url,完成登录后,跳转回应用url。
上图是跳转的处理,若没指定需要跳转的页面,那就默认回到首页,若有指定的 returnUrl,就跳转回指定的页面里。
 

   c) 用户已经登录,用户直接访问应用的URL,若该用户无权限,跳转到指定的url
没有访问权限的用户会被重定向到没权限访问的页面
 
系统中的注意事项,先看下图
NeedUrlAuthorizedAttribute 是需要进行url验证用的属性,在需要控制的Controller上加上,例如

判断是否有url权限的调用方法如下:
  [NeedAuthorize]   需要进行登录(这个可以省略)
  [NeedUrlAuthorized] 需要进行Url验证 (首先会要求需要登录)
  [HttpPost]
  public ActionResult User(Friend.Models.User model)
 {
 }
 
PermissionWebService 是进行权限验证中心远程进行权限判断的WebService,是引用了
http://www.sso.com/PermissionService.asmx 这个WebService。
需要在配置文件里进行
配置
SystemCode, 主要是来识别,是哪个子系统的权限?因为当前可能10多个网站,那就是有10多个子系统,那就每个子系统需要有一个唯一识别的编号。
 
那如何设置某个子系统的用的url权限?看下图(用户权限配置参考,子系统设置菜单、菜单编号、菜单url设置):
 
 
若没登录,就会提示先登录
 
登录后,若没权限访问这个页面,就会提示没权限访问。
可以点网页下面的 有情连接进行测试,不用在url里人工输入。
 
   d) 用户已经登录,用户直接访问用户有权限的应用url,通过。
与上面的需求一致,有权限的自然能通过调用。
有URL访问权限的,可以显示页面效果如下
 
   E) 跨域的单点登录、权限判断需要注意的配置部分。
需要在其他需要接入的 其他应用里需要加上这3个配置,认证主服务器上不要进行这个配置,需要删除掉这几行配置信息才可以。

2、验证码的生成,封装成一个插件,方便各种加强版本的验证需要。
这个是一个通用的严正码设置与验证码校验的类,可以按自己的需要进行修改。
 
复制代码

//-----------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2013 , Hairihan TECH, Ltd.
//-----------------------------------------------------------------

using System;
using System.Data;
using System.Data.Common;
using System.Collections.Generic;

namespace DotNet.Business
{
    using DotNet.Utilities;

    /// <summary>
    /// BaseUserManager
    /// 用户管理
    ///
    /// 修改纪录
    ///
    ///        2013.08.17 版本:1.0 JiRiGaLa    用户登录后才设置验证码、获取验证码等。
    ///
    /// <author>
    ///        <name>JiRiGaLa</name>
    ///        <date>2011.10.17</date>
    /// </author>
    /// </summary>
    public partial class BaseUserManager : BaseManager
    {
        #region public int SetVerificationCode(string userId, string verificationCode) 设置验证码
        /// <summary>
        /// 设置验证码
        /// </summary>
        /// <param name="userId">用户主键</param>
        /// <param name="verificationCode">验证码</param>
        /// <returns>影响行数</returns>
        public int SetVerificationCode(string userId, string verificationCode)
        {
            int result = 0;
            if (string.IsNullOrEmpty(userId) && this.UserInfo != null)
            {
                userId = this.UserInfo.Id;
            }
            string sqlQuery = string.Empty;
            sqlQuery = " UPDATE " + BaseUserLogOnEntity.TableName
                     + "    SET " + BaseUserLogOnEntity.FieldVerificationCode + " = " + DbHelper.GetParameter("VerificationCode")
                     + "  WHERE " + BaseUserLogOnEntity.FieldId + " = " + DbHelper.GetParameter("UserId");

            List<IDbDataParameter> dbParameters = new List<IDbDataParameter>();
            dbParameters.Add(DbHelper.MakeParameter("VerificationCode", verificationCode));
            dbParameters.Add(DbHelper.MakeParameter("UserId", userId));
            result = DbHelper.ExecuteNonQuery(sqlQuery, dbParameters.ToArray());
            return result;
        }
        #endregion

        #region public bool Verify(string userId, string verificationCode)
        /// <summary>
        /// 验证,验证码是否正确
        /// </summary>
        /// <param name="userId">用户主键</param>
        /// <param name="verificationCode">验证码</param>
        /// <returns></returns>
        public bool Verify(string userId, string verificationCode)
        {
            bool result = false;
            string sqlQuery = string.Empty;
            // 最后一次登录时间
            sqlQuery = " SELECT COUNT(1)"
                     + "   FROM " + BaseUserLogOnEntity.TableName
                     + "  WHERE " + BaseUserLogOnEntity.FieldVerificationCode + " = " + DbHelper.GetParameter("VerificationCode")
                     + "        AND " + BaseUserLogOnEntity.FieldId + " = " + DbHelper.GetParameter("UserId");

            List<IDbDataParameter> dbParameters = new List<IDbDataParameter>();
            dbParameters.Add(DbHelper.MakeParameter("VerificationCode", verificationCode));
            dbParameters.Add(DbHelper.MakeParameter("UserId", userId));
            object exist = DbHelper.ExecuteScalar(sqlQuery, dbParameters.ToArray());
            if (exist != null)
            {
                if (BaseSystemInfo.OnLineLimit <= int.Parse(exist.ToString()))
                {
                    result = true;
                }
            }
            return result;
        }
        #endregion
    }
}

复制代码

 


3、提供远程访问接口:用户信息的访问;权限信息的访问。访问方式可以是Webservice的方式,封装成一个访问类,方便别人调用。
PermissionService.asmx 权限的WebService中有方法可以获取用户的权限,权限主要注意
1):要判断哪个子系统的权限?
2):每个权限都有一个不重复的编号来识别的。
复制代码

//-----------------------------------------------------------------------
// <copyright file="FriendFansManager.Auto.cs" company="Hairihan">
//     Copyright (c) 2013 , All rights reserved.
// </copyright>
//-----------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using DotNet.Business;

namespace Friend
{
    /// <remarks>
    /// PermissionWebService
    /// 权限检查的WebService
    ///
    /// 修改纪录
    ///
    /// 2013.08.17 版本:1.0 JiRiGaLa 更新审核意见。
    ///
    /// 版本:1.0
    ///
    /// <author>
    ///        <name>JiRiGaLa</name>
    ///        <date>2013.08.17</date>
    /// </author>
    /// </remarks>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    // [System.Web.Script.Services.ScriptService]
    public class PermissionService : System.Web.Services.WebService
    {
        // 如果当前用户没登录后台的权限
        DotNet.Business.PermissionService permissionService = new DotNet.Business.PermissionService();

        // 如果当前用户登录
        // DotNet.Utilities.BaseUserInfo userInfo = Utilities.CheckCookie(HttpContext.Current.Request);

        public PermissionService()
        {
            /*
            if (userInfo != null && !string.IsNullOrEmpty(userInfo.Code))
            {
                if (!string.IsNullOrEmpty(permissionItemCode))
                {
                    bool permissionAdmin = permissionService.IsAuthorizedByUser(userInfo, userInfo.Id, permissionItemCode, string.Empty);
                    if (!permissionAdmin)
                    {
                        throw new Exception("没有权限访问。");
                    }
                }
            }
            else
            {
                throw new Exception("没有权限访问。");
            }
            */
        }


        #region public bool IsUserInRole(string systemCode, string userId, string roleCode)
        /// <summary>
        /// 用户是否在某个角色里
        /// </summary>
        /// <param name="systemCode">子系统编号</param>
        /// <param name="userId">用户主键</param>
        /// <param name="roleCode">角色编号</param>
        /// <returns>是否在某个角色里</returns>
        [WebMethod]
        public bool IsUserInRole(string systemCode, string userId, string roleCode)
        {
            // 需要创建个用户对象
            DotNet.Utilities.BaseUserInfo userInfo = new DotNet.Utilities.BaseUserInfo();
            // 若没指定是哪个子系统,默认就是基础系统
            if (string.IsNullOrEmpty(systemCode))
            {
                systemCode = "Base";
            }
            userInfo.SystemCode = systemCode;
            // 判断用户是否在指定的角色里?
            BaseUserManager userManager = new BaseUserManager(userInfo);
            return userManager.IsInRoleByCode(userId, roleCode);
        }
        #endregion


        #region public bool IsAuthorized(string systemCode, string userId, string permissionItemCode)
        /// <summary>
        /// 对某个模块、操作是否有权限?
        /// </summary>
        /// <param name="systemCode">子系统编号</param>
        /// <param name="userId">用户主键</param>
        /// <param name="permissionItemCode">操作权限编号、模块编号</param>
        /// <returns>是否拥有操作权限</returns>
        [WebMethod]
        public bool IsAuthorized(string systemCode, string userId, string permissionItemCode)
        {
            bool returnValue = false;
            // 需要创建个用户对象
            DotNet.Utilities.BaseUserInfo userInfo = new DotNet.Utilities.BaseUserInfo();
            // 若没指定是哪个子系统,默认就是基础系统
            if (string.IsNullOrEmpty(systemCode))
            {
                systemCode = "Base";
            }
            userInfo.SystemCode = systemCode;
            // 实时从数据库判断权限的调用方法
            returnValue = permissionService.IsAuthorizedByUser(userInfo, userId, permissionItemCode, string.Empty);
            return returnValue;
        }
        #endregion


        #region public bool IsUrlAuthorized(string systemCode, string userId, string url)
        /// <summary>
        /// 对某个模块、操作是否有权限?
        /// </summary>
        /// <param name="systemCode">子系统编号</param>
        /// <param name="userId">用户主键</param>
        /// <param name="url">按网址授权</param>
        /// <returns>是否拥有操作权限</returns>
        [WebMethod]
        public bool IsUrlAuthorized(string systemCode, string userId, string url)
        {
            bool returnValue = false;
            // 需要创建个用户对象
            DotNet.Utilities.BaseUserInfo userInfo = new DotNet.Utilities.BaseUserInfo();
            // 若没指定是哪个子系统,默认就是基础系统
            if (string.IsNullOrEmpty(systemCode))
            {
                systemCode = "Base";
            }
            userInfo.SystemCode = systemCode;
            // 实时从数据库判断权限的调用方法
            returnValue = permissionService.IsUrlAuthorizedByUser(userInfo, userId, url);
            return returnValue;
        }
        #endregion


        #region public string[] GetUserPermissions(string systemCode, string userId)
        /// <summary>
        /// 获取用户的所有权限列表
        /// </summary>
        /// <param name="systemCode">子系统编号</param>
        /// <param name="userId">用户主键</param>
        /// <returns>权限编号数组</returns>
        [WebMethod]
        public string[] GetUserPermissions(string systemCode, string userId)
        {
            List<string> permissions = new List<string>();
            // 需要创建个用户对象
            DotNet.Utilities.BaseUserInfo userInfo = new DotNet.Utilities.BaseUserInfo();
            // 若没指定是哪个子系统,默认就是基础系统
            if (string.IsNullOrEmpty(systemCode))
            {
                systemCode = "Base";
            }
            userInfo.SystemCode = systemCode;
            // 获取用户的所有权限列表
            List<BaseModuleEntity> entityList = permissionService.GetModuleListByUser(userInfo, userId);
            foreach (var entity in entityList)
            {
                // 权限编号
                // entity.Code;
                permissions.Add(entity.Code);
                // 能访问的url列表
                // entity.NavigateUrl;
                // entity.FullName;
            }
            return permissions.ToArray();
        }
        #endregion
    }
}

复制代码

 

 

A: SSO服务器端配置说明:

    1: 附加数据库,把sql2008数据库配置好,附加DotNet.CommonV3.9\DotNet.DataBase\SQL2008\UserCenter39

    2: 配置  DotNet.Common\Friend, MVC的单点登录程序,配置数据库连接Web.config中的UserCenterDbConnection的数据库连接。

    3: 删除单点登录的SSO,SSOVerify,SSOPermissionService项目,从Web.config中。

    进行以上3个步骤,mvc 的 SSO 服务器端就配置好了,在iis里设置好MVC网站就可以了。

 

B: SSO 客户端的配置说明:

   1:添加2个dll的引用,DotNet.Business、 DotNet.Utilities,dll在 DotNet.Common\Friend\External 目录下。

   2:Controller 需要加 [NeedAuthorize] 进行单点登录控制, [NeedUrlAuthorized]进行ul 权限限制。

   3:Web.config 中加 SSO,SSOVerify,SSOPermissionService 的配置。

   4:添加 PermissionWebService 引用,就是需要引用 上面里的单点登录 WebService。

   5:Global.asax 中需要写一下 Application_Start() 中的代码复制过去。

 
 
目前通用权限管理系统组件完全满足以上需求,方便快速开发各种 .Net 应用软件。
 
主要需要整理的部分如下列表中的问题
01:MVC 单点登录需求
02:MVC 数据库连接的配置。
03:MVC 用户名密码登录,有错误时需要有错误提示信息。
04:MVC 里保存密码的方式,Cokies 保存测试。
05:MVC cookies 保存的时间长度设置,是否启用cookies。
06:MVC 若有登录自动跳转地址的方式。
07:MVC 用OpenId(Key)登录的方式,登录跳转的优化。
08:MVC 多系统支持单点登录的配置注意事项。
09:MVC 权限判断的例子。
10:MVC URL 权限判断的例子。
11:MVC 退出功能的深入优化,能退出子系统也可以退出主系统。

转载于:https://www.cnblogs.com/bosamvs/p/7602110.html

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. PNG格式小图标的CSS任意颜色赋色技术

    一、见为实CSS可以修改图片的颜色,没错,可以,见为实!您可以狠狠地点击这里:png小图标CSS赋色demo上面的不是很黑的是原始图标,是个PNG图片,下面这个是可以赋色的:下面,我们随意选择一个颜色,例如紫色,然后:是不是感觉很厉害!以后设计师就不需要在提供几套颜色的图…...

    2024/4/20 0:58:45
  2. sql server: 数据库备份时出现-operating-system-error-5拒绝访问

    sql-server 数据库备份时出现-operating-system-error-5拒绝访问。一般备份文件选择的目录为磁盘根目录或备份所选分区未授予sqlserver用户读写权限时会出现此错误。解决办法就是给sqlserver用户授予权限:选择要备份的文件夹 ,右键–>属性–>安全–>看下”组或用户”…...

    2024/4/19 20:06:57
  3. 基于JAVA和SQL SERVER实现的图书借阅管理系统

    1 引言1.1 课程设计目的按照关系型数据库的基本原理,综合运用所学的基本知识,设计开发一个小型的管理信息系统。通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力,另一方面,使学生能深入…...

    2024/4/16 23:43:44
  4. js中onclick事件里面传递参数

    在onclick事件中添加参数,很多时候在onclick事件中触发的是界面的跳转,那么一般需要传递参数过去。href="javascript:void(0)" οnclick="doCheck(this)" type=0 (也可以这样写:href="javascript:void(0)" οnclick="doCheck(this.type…...

    2024/4/16 23:43:56
  5. cocos2d-x3.6 连连看连通算法

    我的博客:http://blog.csdn.net/dawn_moon上一章讲了连连看游戏的主要逻辑,连通算法并有讲如何实现。这个连连看没有使用广度优先搜索算法,采用的是一种比较有技巧的算法,参见前面章节。大致分为几个部分:直连通 两个点X轴扩展后可以直连通 两个点Y轴扩展后可以直连通看下…...

    2024/4/16 23:44:50
  6. [推荐]客户端表单通用验证CheckForm(oForm)(2)

    导读:   客户端表单通用验证CheckForm(oForm)(2)   客户端表单通用验证CheckForm(oForm)(2)   也许有人已经发了,不过搜索没看到,那就再发一次吧   在线演示:http://ad.hnce.com.cn/AdReg.aspx   代码说明及下载:http://bbs.80nian.net/thread-452-1-1.html   …...

    2024/4/16 23:45:50
  7. 本科项目——51单片机多功能万年历

    源程序下载地址:http://download.csdn.net/detail/cxp2205455256/8183217 设计报告下载地址:http://download.csdn.net/detail/cxp2205455256/8183231 本科项目——51单片机多功能万年历本设计是一个基于STC12C5A60S2系列单片机为核心的LCD12864数字时钟,结合相关的元器件(…...

    2024/4/16 23:44:56
  8. 备份集中的数据库备份与现有的 'JM2012' 数据库不同。错误处理

    sqlserver 2005 在新建库中恢复数据库文件。出现“备份集中的数据库备份与现有的 JM2012 数据库不同。”有以下几种错误可能: 一、在恢复新建数据库时没有选中“覆盖原数据库”。解决方法:选项(Options)->还原选项(Restore options)->覆盖现有数据库(Overwrite the exi…...

    2024/4/16 23:46:02
  9. 关于word合并、分割、转换问题

    最近项目中有个这样的需求:要把word 按章节(大纲)拆分多个word,然后再将这些word能合并成一个整体。看到这个需要,其实也是头疼,100个程序员中应该100位都没有做过类似的开发,最多的就是poi 读取、生成word,那么接下来,我会将最近研究的word切割、转换、合并以笔记的形式记…...

    2024/4/16 23:45:14
  10. Cocos2d-x 3.0 RPG 回合制游戏实战 (一)虚拟操作键(虚拟遥感)

    注:这个游戏是根据http://code4app.com/ios/RPG%E5%9B%9E%E5%90%88%E5%88%B6%E6%88%98%E6%96%97%E6%B8%B8%E6%88%8F/527b41e86803fa9d28000002 使用Cocos2d-x3.0beta重新实现的,而原游戏则使用Cocos2d-iphone为什么将虚拟操作键放在第一篇呢?原因很简单,就目前而言,几乎绝…...

    2024/4/16 23:45:02
  11. Java 万年历输出方法

    1.输入年份和月份,在控制台打印出本年本月的日历效果如下: 2.个人觉的写Java程序前首先要理解要求,然后理清思路,最后再决定用什么方法去实现。我的思路如下:第一,首先要输出万年历需要一个循环来打印输出这个日历表。 第二,其次需要知道某年的某月是从周即开始的。 …...

    2024/4/18 16:23:01
  12. JaveWeb项目——简单的图书管理系统实现

    一、项目介绍一个简单的图书管理系统(一)、功能介绍用户分为管理员和普通用户(0:普通用户,8:管理员);用户注册:设置用户名和密码(注册的用户会有一个值来标识,0:普通用户)管理员可以对图书进行数据库的增删改查等功能;(管理员可以根据图书编号来更改书名,删除书…...

    2024/4/17 23:44:59
  13. 解决: : New update(s) found: 2.6.5

    因为项目用到了ehcache,所以tomcat每次启动日志就打印net.sf.ehcache.util.UpdateChecker doCheck 以前也没有特别留意,今天在启动 Tomcat 的时候,发现了下面这段输出的信息: {INFO } [2014-06-30 07:42:10,625] <net.sf.ehcache.util.UpdateChecker> : New update(s…...

    2024/4/16 23:44:44
  14. 数据库备份与恢复,全备份、增量备份

    数据备份一、数据备份方法及策略MySQL数据库最常用的备份方法如下:直接cp备份 sqlhotcopy备份 主从同步复制 Mysqldump备份 xtrabackup备份二、mysqldump备份通常小于100GB的MySQL数据库可以使用mysqldump备份工具进行备份,如果是超过100GB的数据,由于mysqldump备份方式采用…...

    2024/4/18 3:51:27
  15. Android数字游戏之数独(自动随机生成不同难度的数独)

    一:概述我在去年写的一个小游戏,数字游戏其中有三个数字游戏。1.数独(这篇博客讲讲这个) 2.扫雷 3.数字排序相信大家都玩过数独吧,或者看别人玩过吧。简单介绍下规则。就是往九宫格中填数字,但是数字在九宫格类,横线方向和竖线方向都不能有重复的数字,就是这个。看看一…...

    2024/4/16 23:45:02
  16. angular2监听变量

    实现接口Docheck,检测页面上所有元素数据更新 import { Component, DoCheck } from "@angular/core"; export class LangListUserComponent implements DoCheck {constructor(private differs: KeyValueDiffers) { }ngOnInit() {this.objDiffer = {};this.list.forE…...

    2024/4/19 2:38:24
  17. 万年历(包括显示系统时间)

    public static void main(String[] args) throws Exception {int year;int month;int day = 0;int sumA = 0;int sumB = 0;System.out.println("* * * * * * * * * * * * * * * * * *欢迎使用万年历* * * * * * * * * * * * * * * * * */n ");Scanner input = new Sc…...

    2024/4/16 23:46:08
  18. 从别一台服务器上得到一个数据库备份还原到本地,数据库中的用户无法登录

    从别一台服务器上得到一个数据库备份还原到本地,数据库中的用户无法登录孤立用户问题:从别一台服务器上得到一个数据库备份.还原到本地,数据库中的用户无法登录,也就是联机帮助中说的还原备份可能产生的孤立用户问题.原有用户user想保留.A : 一种方法是你在恢复…...

    2024/4/19 9:23:17
  19. 嵌入式系统软件的全过程质量保证

    2009-04-09 作者:靳超 来源:电子产品世界质量是产品的生命 当今随着软、硬件技术的发展,嵌入式系统广泛应用于航空航天、国防军事、电子通信等行业,其中软件也越来越复杂。而这些领域应用特点,决定了嵌入式系统往往是高安全、任务关键的系统,软件的微小瑕疵就可能严重威胁…...

    2024/3/31 22:13:21
  20. 创建一个简单的学生信息管理系统

    一个求助。创建一个简单的学生信息管理系统,能够实现管理员登录,修改密码,录入教师账号和密码,录入学生账号和密码,查看个人信息,查看所有账号信息;教师登录,查看个人信息,修改密码,录入学生成绩,查询学生成绩;学生登录,查看个人信息,修改个人密码。实现方法…...

    2024/4/18 5:48:26

最新文章

  1. Vue 工程化开发入门

    Vue开发的两种方式&#xff1a; 核心包传统开发模式&#xff1a;基于html/css/js文件&#xff0c;直接引入核心包&#xff0c;开发Vue工程化开发模式&#xff1a;基于构建工具的环境中开发Vue 这里选择Vue cli脚手架 进行开发&#xff0c;搜索教程自行下载。 组件化开发 一个页…...

    2024/5/3 3:34:16
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Kafka入门到实战-第五弹

    Kafka入门到实战 Kafka常见操作官网地址Kafka概述Kafka的基础操作更新计划 Kafka常见操作 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件流平台&…...

    2024/5/1 13:31:04
  4. Mybatis--TypeHandler使用手册

    TypeHandler使用手册 场景&#xff1a;想保存user时 teacher自动转String &#xff0c;不想每次保存都要手动去转String&#xff1b;从DB查询出来时&#xff0c;也要自动帮我们转换成Java对象 Teacher Data public class User {private Integer id;private String name;priva…...

    2024/5/1 14:21:06
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/2 9:28:15
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57