zoukankan      html  css  js  c++  java
  • web api model 自定义验证

    web api model验证跌重要性不必说,尽早的过滤掉非法的请求

    首先自定义model 验证类 DescompareValidationAt

        public class DescompareValidationAt : ValidationAttribute
        {
    
            public override bool IsValid(object value)
            {
                if (DES.CanDescheck((string)(value)) == true)
                {
                    return true;
                }
                return false;
            }
        }

    这个类主要做des 验证,传入的参数只有是des加密过的参数,接口才予以处理。

    接着定义web api model 类,应用刚传的验证方法

    public class accountpointrequest : BaseRequestModel
        {
            [Display(Name = "会员编号")]
            [DescompareValidationAt(ErrorMessage = "会员编号不符合规范")]
            public string customer_id { get; set; }
        }

    在控制器部分通过ModelVerification(),ValidateFailMessage() 二个方法分别返回 是否model的验证结果和验证失败的错误消息

    protected bool ModelVerification()
            {
                if (ModelState.IsValid)
                {
                    return true;
                }
                else
                {
                    
                    return false;
                }
               
            }
    
            protected string ValidateFailMessage()
            {
                string VerificaError = null;
                var ErrorCollection = ActionContext.ModelState;
                var keylist = ErrorCollection.Keys.ToList();
                var keyvalues = ErrorCollection.Values.ToList();
                var Valueslist = keyvalues.ToList();
                for (var i = 0; i < Valueslist.Count; i++)
                {
                    for (var j = 0; j < Valueslist[i].Errors.Count; j++)
                    {
                        string TempString = null;
                        TempString = Valueslist[i].Errors[j].ErrorMessage.ToString2();
                        if (TempString != "")
                        {
                            VerificaError = VerificaError + Valueslist[i].Errors[j].ErrorMessage + ";";
                        }
                    }
                }
                if (VerificaError == null)
                {
                    VerificaError = Common.StatusCode.SYSTEM_EXCEPTION.Description;
                }
                return VerificaError;
            }

    得到验证失败的错误消息后就可以根据需要返回或者自己吸收掉类

  • 相关阅读:
    MAVLINK协议
    rtt之通用bootloader
    easy flash &easy log
    电源适配器DC插头规格
    Jquery实现仿腾讯微薄的广播发表
    可供前端工程师选择的精彩CSS框架
    javascript实现记录文本框内文字个数
    Jquery仿IGoogle实现可拖动窗口(源码)
    jquery javascript 回到顶部功能
    常用的经典jquery代码[转]
  • 原文地址:https://www.cnblogs.com/hbsfgl/p/4996890.html
Copyright © 2011-2022 走看看