2014-03-25 9 views
0

게시 방법으로 요청을 전달했습니다. 필터를 사용하여 요청 (헤더/본문)의 유효성을 검사하고 싶습니다. 웹 API를 사용하여 구성하는 방법.C# webapi에서 헤더/본문 유효성 검사 필터를 만드는 방법

x-ln-request:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:requestToken xmlns:ns2="http://services.lexisnexis.com/xmlschema/request-token/1"><transactionID>2886f786-bd20-4220-932b-1bca1a9f7710</transactionID><sequence>1.2.2.2</sequence><contextualFeaturePermID>1000516</contextualFeaturePermID><featurePermID></featurePermID><billBackString descriptionPermId="">-None-</billBackString><isMandatoryBillbackEnforced>false</isMandatoryBillbackEnforced><cpmFeatureCode>47</cpmFeatureCode></ns2:requestToken> 
x-ln-session:<?xml version="1.0" encoding="UTF-8"?><ns2:sessionToken xmlns:ns2="http://services.lexisnexis.com/xmlschema/session-token/1"><sessionID>c2e9d6f8-6505-4f59-a453-0f7014e58832</sessionID><issued>2014-03-24T02:59:31.484-04:00</issued><userPermIDUrn>urn:user:CA148686</userPermIDUrn><authorizationPermID>1000202</authorizationPermID><signature>v1-ffa9cbc5d0c27c7a36e1a2698fb11189</signature></ns2:sessionToken> 
x-ln-i18n: 
x-ln-retrieveoptions: 
x-ln-application: 

본문은 다음과 같습니다 :

webapi 필터를 호출하는 방법을
<ns3:renderJob xmlns:ns2="http://services.lexisnexis.com/xmlschemas/linktemplate/1" xmlns:ns3="http://services.lexisnexis.com/shared/xmlschema/renderer/3" xmlns:ns4="http://services.lexisnexis.com/shared/xmlschema/coredataitem/2" xmlns:ns5="http://services.lexisnexis.com/shared/xmlschema/subdataitem/2" xmlns:ns6="http://services.lexisnexis.com/shared/xmlschema/clientmatter/1" xmlns:ns7="http://services.lexisnexis.com/shared/xmlschema/servicescommon/2> 

어느 한 날이에 도움이 될 수 있습니다 아래 내 요청입니다.

답변

0
새로운 추가하기 국제 hanlders

를 사용 http://www.dotnetcurry.com/showarticle.aspx?ID=927

  1. 당신은 필터에 대한 아래 링크를 확인 가능 검증 2. 글로벌 핸들러를 필터를 사용하여 두 가지 방법 1에서 광범위하게 수행 할 수 있습니다

    다음 코드를 사용하십시오.

    class SampleHandler : DelegatingHandler 
    { 
        public SampleHandler() 
        { 
        } 
    
        protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
        { 
         //TODO: Validation goes here 
    
         HttpResponseMessage response = await base.SendAsync(request, cancellationToken); 
         if (!response.IsSuccessStatusCode) 
         { 
          //_writer.WriteLine("{0}\t{1}\t{2}", request.RequestUri, 
           // (int)response.StatusCode, response.Headers.Date); 
         } 
    
         return response; 
        } 
    

    WebApiConfi 파일에서이 줄을 추가

    config.MessageHandlers.Add(new SampleHandler()); 
    

    참조 :이 당신에게

    를 도움이되기를 바랍니다 http://www.asp.net/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api https://brettedotnet.wordpress.com/2013/05/01/asp-net-web-api-validation-a-one-more-better-approach/