2012-01-05 1 views
-1

나는 웹 서비스에 Elmah 로깅을 추가하려고합니다. 사용자는 유효한 사용자임을 확인하기 위해 인증을 받지만 진정으로 로그인 한 적이 없습니다. 따라서 ELMAH에서 오류를 기록하고 기록 할 때 사용자 이름은 항상 비어 있습니다. 이 값을 프로그래밍 방식으로 채울 수 있다면 도움이 될 것입니다. 그렇지만이 방법을 찾지 못하는 것 같습니다.사용자 로그인없이 예외 상황에서 사용자를 변경할 수 있습니까?

내 코드는 매우 간단하다 :

public static void Add(Exception ex) 
{ 
    try 
    { 
     ErrorSignal.FromCurrentContext().Raise(ex); 
    } 
    catch (Exception ex2) 
    { 
     throw ex2; 
    } 
} 

나는 우리가 이름을 지정한 사용자 정의 예외를 만들 수있는 방법을 찾을 수 없습니다.

+1

호기심에 넘쳐서 - 사용자를 로그인 할 필요가 없다면 왜 사용자를 인증합니까? –

+0

웹 서비스이므로 사용자가 웹 서비스를 사용하고 데이터베이스에 로그인해야 할 필요가 있지만 그 이상의 작업은 필요하지 않습니다. 사용자를 로그인 할 수는 있지만 가능하면 올바른 정보가 제 예외로 전달되도록 코드를 다시 작성해야합니다. 그것을 피하기를 희망했다. – Cyfer13

+0

사용자를 인증하는 코드는 어디에서 인증 되었습니까? 일단 사용자 이름 또는 도메인 사용자 이름을 저장할 수 있어야합니다. 코드 예제가 실제로 많이 도움이되지 않습니다. 죄송합니다 ... – MethodMan

답변

0

가능한 경우 적절한 권한을 가진 가장 된 사용자로 웹 서비스를 실행하는 것이 좋습니다. 이것은 물론 사용자의 인증 방식에 달려 있지만 옵션입니다. 여기

우리가이 (웹 서비스의 web.config에 추가) 할 방법은 다음과 같습니다

<identity impersonate="true" userName="registry:HKLM\Software\OurApp\ASPNET_SETREG,userName" password="registry:HKLM\Software\OurApp\ASPNET_SETREG,password"/> 

우리는 레지스트리에서 도메인 사용자 이름과 암호를 기록 aspnet_setreg 유틸리티를 사용하여이 사용자는 다음에 대한 책임 모든 데이터베이스 상호 작용 등