2013-07-30 6 views
0

나는 C#에서 비누 webservice에 노력하고 있습니다. 그것은 다음과 같이 :비누 webservice에 사용자 이름과 암호를 전달

public class MyService : System.Web.Services.WebService 
{ 

public MyService() 
{ 
} 

[WebMethod] 
public string Hello() 
{ 

    return "hello"; 
} 
} 

내가 다른 웹 사이트에서이 웹 서비스에 대한 서비스 참조 추가, 그래서 거기에 코드를 사용에서 Hello() 방법에 액세스 할 수 있습니다

MyServiceSoapClient client = new MyServiceSoapClient(); 
client.Hello(); 

은 이제 필요 해당 웹 서비스에 자격 증명을 전달하십시오.

MyServiceSoapClient client = new MyServiceSoapClient(); 
    client.ClientCredentials.UserName.UserName = "test"; 
    client.ClientCredentials.UserName.Password = "pwd"; 
    client.Hello(); 

하지만합니다 (Hello() 방법)을 웹 서비스에서 이러한 자격 증명을 얻을 관리 할 수있다 : 나는 노력했다.

웹 서비스에서 어떻게 이러한 값을 얻을 수 있습니까?

+1

http://stackoverflow.com/questions/7862941/web-service-with-windows-authentication-with-soap-client –

답변

1

WebService.User 속성을 통해 사용자를 얻을 수 있습니다. 이렇게하면 사용자 이름을 얻을 수 있지만 전달 된 암호를 검색 할 수있는 방법이 없습니다. 이는 WebService가 실행되기 전에 IIS 수준에서 인증이 수행되는 방식입니다.

public class MyService : System.Web.Services.WebService 
{ 
    public MyService() 
    { 
    } 

    [WebMethod] 
    public string Hello() 
    { 
     return "hello, my name is " + User.Identity.Name; 
    } 
} 
+0

대답 주셔서 감사합니다. User.Identity.Name을 사용하는 동안 클라이언트에서 설정 한 창 username.not을 얻지 못했습니다. –

+0

설명서의 MSDN 페이지를 읽으면 authentiaction 유형을 설정해야 할 수 있습니다. –

+0

확인할 다른 하나는'Context.Session.User.Identity'입니다. User.Identity와 동일한 사용자인지 여부는 알 수 없습니다. –

관련 문제