2012-04-18 3 views
0

방금 ​​asp.net 웹 사이트에 대해 매우 간단한 로깅 프로세스를 구현했습니다. 이 웹 사이트는 아무도 로그온하지 않은 서버의 IIS에서 호스팅됩니다. 클라이언트는 로컬 네트워크 주소로이 웹 사이트에 연결합니다. 나는 수행 된 작업에 대한 정보와 얼마나 많은 시간이 걸렸는 지에 대한 정보를 기록하고 있습니다. 누군가가 로그 파일을 읽길 원한다면, 모든 사람의 작업이 같은 장소에서 작성되기 때문에 그는 어떤 작업이 실행되었는지 알 수 없습니다.클라이언트 ID 식별

내가 로그인 할 때마다 사용자를 식별하는 정보를 추가하고 싶습니다. 나는 HttpContext.Current.User에 접근하려고 시도했다. 그러나 이것은 항상 일반적인 신원을 가지고있다. HttpContext.Session을 살펴 보았지만 아무 것도 찾지 못했습니다 ...

사용자의 컴퓨터 이름이나 사용자 이름 (Windows에 로그인하는 데 사용했던 컴퓨터 이름) 또는 다른 것을 기록하고 싶습니다. 사용자가 어떤 작업이 자신의 작업인지 식별하는 데 도움이됩니다. (또한 별도의 로그 파일에서 모든 것을 분리 할 수 ​​있지만 다시 말해서 appart에게 알려줄 수있는 것이 필요합니다).

+2

로컬 인트라넷에있는 경우 응용 프로그램에 대해 Windows 인증을 사용하고 모든 사람이 연결할 수 있도록 허용 할 수 있습니다. 그렇다면'Current.User'가 효과가있다. – SouthShoreAK

+0

web.config에서 를 의미합니까? 방금 해봤 어. Visual Studio에서 디버깅 할 때 작동했지만 배치 한 후에는 작동하지 않았습니다. 나는 그것이 전개 될 때 서버의 윈도우 사용자 (아무도 없음 ...)가 걸릴 것이라고 생각한다. – Amaranth

+0

익명 로그인으로 약간의 작업을해야 할 수도있다. 나는 전에 이것을 한 것을 알고 있지만, 나는 정말로 정확한 세부 사항을 기억하지 못해 죄송합니다. – SouthShoreAK

답변

0

잠시 동안 검색 한 후 클라이언트의 컴퓨터 이름을 찾는 방법을 찾았습니다.

string name = 
    System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName.Split('.')[0]; 
관련 문제