2010-04-23 5 views
0

asmx 웹 서비스에 사용자 지정 특성을 추가하여 요청이 클라이언트 IP 주소를 기반으로 유효한 지 확인합니다. 이것은 ASP.NET MVC의 AuthorizeAttribute와 비슷한 개념입니다..NET WebService 사용자 지정 속성

어디서나 (예 : HTTP 모듈) 웹 서비스의 속성을보고 요청을 허용할지 여부를 결정할 수있는 코드를 넣을 수 있습니까?

내 web.config에서 asmx 용 처리기는 System.Web.Extensions dll의 ScriptHandlerFactory입니다.

HTTP 모듈과 설정 파일에 허용 된 URL 목록이있는 기능을 이미 구현했지만 config 파일을 제거하고 webservice 클래스에 특성을 추가하는 것을 선호합니다.

감사

당신은 예를

 
class ValidateIP 
{ 
    public ValidateIP(string ip) 
    { 
     if(!valid) 
     throw CustomerException(); 
    } 
} 

에 대한 사용자 정의 속성을 추가 할 수 있으며 당신이 필요로하는 모든 클래스에 속성을 추가하는 것입니다

+0

이것은 모자를 사용하면 IIS에서 직접 구성 할 수도 있습니다. –

답변

0


[ValidateIP (IP)]

Full example 

 
namespace Test 
{ 
    [TriLLi("11")] 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     } 
    } 
    class TriLLi : Attribute 
    { 
     public TriLLi(string ip) 
     { 
      if(!ip.Equals("10")) 
       throw new Exception("You are not allowed to acces this method"); 
     } 
    } 
}

+0

이것은 속성이 작동하는 방식이 아닙니다. 첫째, 속성 클래스는'Attribute'에서 확장되어야합니다. 속성은 일반적으로 메서드에 대한 정보를 제공하는 데 사용됩니다. 설명하는 방식으로 메서드를 실행하지 않습니다. – Cocowalla

+0

특성 클래스를 상속하는 것을 잊어 버렸지 만 이것이 작동하는 방식입니다 ... 기본적으로 솔루션 작업용 lke를 얻을 수 있습니다 이. –

+0

어서 시도해보십시오. ValidateIP 메서드는 실행되지 않습니다. 속성이 작동하는 방식이 아니기 때문입니다! – Cocowalla