2013-11-09 1 views
1

이것은 웹 서비스와 보안에 대한 또 다른 질문입니다. 나는 WCF 웹 서비스를 만들어웹 서비스에 사용자 이름과 암호를 전달할 수 있었지만 권한이없는 사용자로부터 보안 할 필요가 없습니다.

public string myData(string a, string b) 
    { 
     if (a == "chris" && b == "pass") 
      return "You did it"; 
     else 
      return "Nope"; 
    } 

나는 알고있다 ...이 내가 사용하는 코드 ...

[OperationContract] 
    [WebInvoke(Method = "GET")] 
    string myData(string name, string pass); 

이며, 이것이 내가 웹 서비스와 상호 작용하는 데 사용하는 코드입니다 이것은 기본적인 것처럼 보이고 더 많은 기능을 추가 할 수 있다는 것을 이해하지만 이것이 필요한 방식이라고 생각하지 않습니다. 그것은 나에게 조금 더러워 보입니다.

웹 서비스를 서버에두고 누군가가 서비스를 사용하려고하면 팝업을 통해 사용자 이름과 암호를 묻습니다. 그러면 데이터베이스에 있는지 확인할 수 있고 계속 진행할 수 있습니다. 웹 서비스를 호출합니다.

이 작업을 수행하려면 IIS에서 인증을 설정해야합니까? 나는 생각하는 것 이상의 생각합니다. 고객이 권한이없는 사용자로부터 웹 서비스를 보호하기를 원합니다. 그게 바로 제가 겪고있는 문제입니다. 인증되지 않은 액세스로부터 모든 것을 안전하게 보호하는 올바른 방법이 IIS에서 이루어 지거나 제공 한 코드 만 사용해야하는 것은 아닙니다.

이런 종류의 질문에 수 백만 번 질문했지만 질문은 항상 다른 답변이므로 답변드립니다. 사과드립니다.

+0

[ "secure wcf service"] (https://www.google.com/search?q=secure+wcf+service)를 찾으려고 했습니까? 다른 것들 중에서도 "Windows Communication Foundation Security"(http://msdn.microsoft.com/en-us/library/ms732362.aspx)를 찾을 수 있습니다. –

+0

예. 있습니다. 나는 "외부 사람들이 정보에 액세스 할 수 없도록 웹 서비스의 보안을 보장하는 최선의 방법은 무엇인가?"라는 질문을 통해 간단히 테스트했습니다. 나는 그가 인터넷이나 인트라넷에 접속할 것인지 물어봐야 할 것 같았습니다. 나는 그 대답을 안다면 나는 더 나은 질문을했을 것이다. 어쩌면 내부 사람들이 그것을 사용하기 때문에 그 이후로 나는 단지 로그인 페이지를 제공하고, 데이터베이스에서 체크 한 다음, 서비스가있는 곳으로 페이지를 보내고,이를 실행하기 위해 버튼을 사용할 수 있습니까? 그것은 똑같은 일을 할 것인가? – Chris

+0

정말. 웹 서비스를 읽으십시오. 해결책이 될 것 같은 첫 번째 것을 선택하는 대신 가능한 무엇이 가능한지 이해해야합니다. 나는 당신이 배운 것을 이해하지만, 배웠을 때, 나는 먼저 코드를 읽는 것이 중요하다는 것을 알았습니다. –

답변

-1

인증 방법을 폼 인증 으로 설정하고 자격 증명을 요청으로 설정해야합니다. 또한 HTTPS로하는 것이 좋습니다.

관련 문제