클라이언트 - 서버 응용 프로그램의 경우, 주로 응용 프로그램 자체에서 사용할 웹 서비스를 개발하고 싶습니다 (현재 제 3 자용으로 사용하지 않음).서비스 방법을 통한 맞춤 인증?
그러나 장기적으로 WebService를 일종의 API로 노출하는 것이 일반적으로 바람직합니다. 따라서, 나는 이미 RESTifing (끔찍한 단어 생성, 나는 알고있다 ;-)) 웹 서비스를 나중에 쉽게 사용할 수있는 기술을 선택하는 데 몇 가지 생각을하고있다.
WCF는 webHttpBinding뿐만 아니라 LAN 및 .NET 클라이언트를 활용할 수있는 다른 바인딩을 제공하기 때문에 여기있는 것처럼 보입니다.
나는 이제 인증 문제에 대해 다루었습니다. WCF가 제공하는 모든 인증 조치는 실제 서비스의 "외부"에서 발생하는 것 같습니다. 그러나 Login
메서드 (또는 here under point 2과 같이 좀 더 "RESTful"메서드)를 갖고 싶습니다. 예를 들어
, 나는 이와 같은 서비스를 쓰는 상상 :
[ServiceContract]
public interface IUserService
{
[ServiceMember]
[WebInvoke(Method = "POST", WebUri="/Session")]
public void Login(string username, string password);
[ServiceMember]
[WebInvoke(Method = "POST", WebUri="/Users")]
public void Register(RegisterUserParameter parameter);
}
어떻게 그렇게 방법은 바람직 내 서비스 프로젝트에 여러 하위 서비스를 통해 작동 WCF에이 서비스를 통합 할 수 있습니까?
내장 된 WCF 인증을 사용할 때 서비스 호출을하기 전에 사용자 이름과 암호를 제공해야합니다. 따라서 인증되지 않았기 때문에 Register
또는 Login
으로 전화하는 것이 실패합니다.
그리고 내 서비스 방법을 사용하여 현재 어떤 사용자가 로그인했는지 기억할 수있는 방법은 무엇입니까? 클라이언트의 WCF 세션 내에 세션 쿠키와 같은 것을 저장할 가능성이 있습니까?
아니면 일반적으로 WCF에서 인증하려는 것을 알고있는 것이 좋지 않습니까?
내 클라이언트 응용 프로그램에서 서비스와 더 복잡한 방식으로 대화하는 대신 WebAPI를 직접 선택해야합니까?