문제

이 코드가 있습니다.

using ( var site = new SPSite( myUrl ) ) {
    using ( var web = site.AllWebs[0] ) {
        // read-only operations
    }
}

"myurl"은 WSS 3.0이있는 최상위 도메인 URL입니다. 인증은 Windows로 설정됩니다. 이 코드가 "aboutal_app_user"계정에서 명령 줄에서 실행하면 모두 괜찮습니다. 그러나이 코드를 WebService (WSS WebApplication 외부)에서 실행하면 SOAP 응답 대신 HTTP 응답 "401 무단"입니다. 이 코드는 "Try-Catch"블록에 있고 발췌 한 경우 비누 응답으로 자체 오류 메시지를 반환했습니다.

코드는 WSS와 동일한 기계에서 실행 중입니다.

웹 서비스가 실행중인 시스템의 WebBroser에서 웹 서비스를 실행하면 클래식 Windows 로그인 양식이 표시됩니다. 다른 컴퓨터에서 WebBrowser에서 웹 서비스를 실행하면 "401 무단"HTTP 응답 만 얻습니다.

웹 서비스는 올바른 계정으로 실행 중입니다. 이 계정에는 WSS에 액세스 할 수 있습니다 (SharePoint 웹 사이트를 통해 테스트). "system.security.principal.windowsidentity.getCurrent (). name을 얻으려면 올바른 사용자 이름이 반환됩니다.

web.config에서 설정되었습니다. "u003Cidentity impersonate="true" userName="_my_username_" password="_my_password_" /> .

누구든지 무엇이 잘못되었는지 아이디어가 있습니까?

도움이 되었습니까?

해결책 3

다른 팁

401을 잡을 수없는 이유는 SharePoint 가이 예외에 대한 사용자 정의 처리를 가지고 있기 때문입니다.이 스레드를 참조하십시오. SharePoint 액세스 거부 오류를 포착 할 수 없습니다 (제안을 끄는 방법 포함).

익명 및 Windows 인증이 모두 허용되면 IIS를 확인할 수 있습니다. 그런 다음 Windows Identity를 읽는 대신 익명으로 사용하여 나중에 무단으로 이어질 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top