2011-06-14 3 views
3

기본 인증을 웹 서비스에 추가하려고합니다. 나는이 article의 단계를 따라 내 web.config 파일에두고 결국 :모노 웹 서비스 및 기본 인증

<configuration> 
<httpModules> 
    <add name="BasicAuthenticationModule" 
    type="Mono.Http.Modules.BasicAuthenticationModule, Mono.Http, Version=2.0.0.0, PublicKeyToken=0738eb9f132ed756"/> 
    </httpModules> 
    <appSettings> 
    <add key="Authentication" value="Basic" /> 
    <add key="Basic.Users" value="/home/vadmin/Projects/TestService/TestService/users.xml" /> 
    <add key="Basic.Realm" value="My Realm" /> 
    </appSettings> 
</configuration> 

내 users.xml 파일은 다음과 같습니다

<?xml version="1.0" encoding="utf-8"?> 
<users> 
<user name="adrian" password="adrian"> 
    <role name="user" /> 
</user> 
</users> 

내가 xsp2를 실행 한 다음

로 이동

http://localhost:8080/TestService.asmx

사용자 및 암호 입력 메시지가 나타납니다. 하지만 올바른 사용자와 암호를 입력하면 계속해서 묻습니다. 나는 users.xml 파일의 경로가 정확하다는 것을 확신한다. xsp2를 --verbose 옵션을 사용하여 운이 좋지 않은 에러 메시지를 기대하면서 실행 해 보았다.

누구든지이 상황을 디버깅 할 수 있습니까?

+0

경로를 상대 "users.xml"로 변경하고 프로젝트 홈 디렉토리에 users.xml 파일을 배치하면 인증이 작동합니다. 나는 왜 절대 경로가 효과가 없었는지 궁금해하고 있습니다. –

답변

1

구성 파일에서 /로 시작하는 경로를 지정하면이 경로는 파일 시스템의 루트 디렉토리가 아니라 웹 사이트의 루트 디렉토리 (예 :/home/vadmin/Projects/TestService/TestService)로 해석됩니다.

그래서 /로 시작하는 경로는 웹 사이트 루트 폴더에 상대적이어야합니다. 사용자 파일이 프로젝트 폴더에있는 경우 위의 경우 "/users.xml"이됩니다.