zoukankan      html  css  js  c++  java
  • 服务端:WCF服务层安全检查核心类

    using System.Data;
    using CSFrameworkV4_5.Common;
    using CSFrameworkV4_5.Core.SystemSecurity;
    using CSFrameworkV4_5.Models;
    using CSFrameworkV4_5.Server.DataAccess.DAL_Permission;
    
    namespace CSFrameworkV4_5.WCFContract
    {
        /// <summary>
        ///服务端:WCF服务层安全检查核心类
        /// </summary>
        public static class WebSecurity
        {
            /// <summary>
            /// 检查客户端恶意访问后台
            /// </summary>
            private static bool _AttackValidation = false;
    
            /// <summary>
            /// 是否检查客户端恶意攻击
            /// </summary>
            public static bool AttackValidation
            {
                get { return _AttackValidation; }
                set { _AttackValidation = value; }
            }
    
            /// <summary>
            /// 用户登录的验证码,防止用户恶意攻击Login接口.
            /// </summary>
            /// <param name="identity">验证码</param>
            /// <returns></returns>
            public static bool ValidateLoginIdentity(byte[] identity)
            {
                //是否连续攻击
                if (WebSecurity.AttackValidation) AttackRecorder.IsAttack();
    
                bool isIdentity = WebServiceSecurity.ValidateLoginIdentity(identity);
                return isIdentity;
            }
    
            public static Loginer ValidateLoginer(byte[] loginTicket)
            {
                //是否连续攻击
                if (WebSecurity.AttackValidation) AttackRecorder.IsAttack();
    
                //加密令牌解析成功
                Loginer user = WebServiceSecurity.ValidateLoginer(loginTicket);
    
                //检查用户名及密码
                if (!ActivityUserCache.ValidateUser(user.Account, user.Password))
                    throw new CustomException("用户名或密码不正确!");
    
                return user;
            }
    
            /// <summary>
            /// 检查用户登录凭证,并且检查两次访问时间
            /// </summary>
            /// <param name="loginer">用户登录凭证</param>
            /// <param name="checkAttack">检查连续调用方法攻击</param>
            /// <returns></returns>
            public static Loginer ValidateLoginer(byte[] loginTicket, bool checkAttack)
            {
                if (checkAttack) AttackRecorder.IsAttack();
    
                //加密令牌解析成功
                Loginer user = WebServiceSecurity.ValidateLoginer(loginTicket);
    
                //检查用户名及密码
                if (!ActivityUserCache.ValidateUser(user.Account, user.Password))
                    throw new CustomException("用户名或密码不正确!");
    
                return user;
            }
    
        }
    
    
    }
  • 相关阅读:
    Windows中的库编程(三、函数调用约定 Calling Convention)
    weui
    js 压缩图片
    django 跨域访问
    html5
    有用的网站
    Chrome
    srpingBoot配置多环境配置文件
    Mysql在查询时不区分大小写
    [CentOS7]Nginx 1.20.1不支持四层负载
  • 原文地址:https://www.cnblogs.com/Jeely/p/11350266.html
Copyright © 2011-2022 走看看