나는 어떤 사용자가 내 웹 서비스를 호출하는지 파악하려고합니다. 이렇게하려면 Environment.UserName을 전달하고 싶습니다. 그러나, 단지 문자열이라면, 자신의 클라이언트를 작성하는 사람은 "asdf"에 넣고 내가하려는 것을 우회 할 수 있습니다. 내가 전화 할 때 이제C# 웹 서비스 호출을 통한 클래스의 전용 변수가 작동하지 않습니까?
public class UserInfo
{
private string userName;
public UserInfo()
{
userName = Environment.UserDomainName + "/" + Environment.UserName + " on " + Environment.MachineName;
}
public string getUserName()
{
return userName;
}
}
: 그래서 내 웹 서비스의 공용 클래스를 선언
ClientTest.ServiceReference.UserInfo user = new ClientTest.ServiceReference.UserInfo();
을 내 클라이언트에, 나는 내 정보 ("내 컴퓨터에 도메인/나")를 얻을 것이라고 생각했다. 그렇지 않습니다. 웹 서비스가 정보를 얻습니다 ("NT AUTHORITY/NETWORK SERVICE on ServerComputer")
이 코드가 작동하도록 수정 한가요? 내 솔루션으로도 가능합니까? 더 좋은 방법이 있습니까?
이것은 사용자 로컬 PC에서 실행되는 Windows 응용 프로그램 클라이언트입니까? –
예, 이것은 PC의 Windows 응용 프로그램입니다. 내 웹 서비스에 연결합니다. 지금 당장 양측을 통제 할 수 있지만, 웹 서비스가 시작된 이래로 나는 앞으로 클라이언트를 제어 할 수있게되었습니다. – Tizz
하,이 정확히 내 마지막 질문에 대답했다 : HttpContext.Current.User 서버에서 사용 (한 번 인증 된) – Tizz