C#

2016-06-06 7 views
0

에서 비누 웹 서비스의 사용자 정의 유효성 검사기에서 연산 결과를 반환하는 방법 ws securtiy.I를 사용하여 하나의 wcf soap 웹 서비스를 작성하지만 사용자 정의 유효성 검사기를 작성합니다. 그러나 문제가 있습니다. 사용자 정의 유효성 검사기 만 반환됩니다. 예외를 던지기 위해 보냈습니다.하지만 수술 결과를 반환하고 싶습니다. 아래 코드를 첨부했습니다. 어떻게해야합니까?C#

public class CustomValidator : UserNamePasswordValidator 
    { 
     public override void Validate(string userName, string password) 
     { 

      OperationResult retVal = new OperationResult() 
      { 
       ReturnCode = 0, 
       ReturnMessage = "OK" 
      }; 

      string s_userName = ConfigurationManager.AppSettings["username"].ToString(); 
      string s_password = ConfigurationManager.AppSettings["password"].ToString(); 
      if (userName == null || password == null) 
      { 
       throw new ArgumentNullException();--I dont want 
       return retVal; --It is good for me 

      } 

      if (userName == s_userName && password == s_password) 
      { 

       return; 

      } 
      else 
      { 

      //return; 
       throw new FaultException("-2 Unauthorized");--I dont want this 
       return retVal; --This giving problem.How can I solve? 
      } 

     } 
    } 

답변

0

당신의 validate 메소드는이 문제의 무효하지 OperationResult를 반환해야합니다.

그래서 서명이 당신이 서명과 일치 할뿐만 아니라 당신의 UserNamePasswordValidator 클래스를 업데이트해야합니다 의미

public override OperationResult Validate(string userName, string password) 

해야한다.

+0

감사합니다. 내 문제를 해결했습니다. –

+0

어떻게이 문제가 해결 되었습니까? [MS docs] (https://docs.microsoft.com/en-us/dotnet/api/system.identitymodel.selectors.usernamepasswordvalidator?view=netframework-4.7.1)에 따르면,'UserNamePasswordValidator'는 메소드를 정의합니다. 'OperationResult'가 아닌'void'를 반환하십시오. 어떻게 이것을 무시할 수 있습니까? – MrWombat