Mono Web服务和基本身份验证

3

我正在尝试为我的Web服务添加基本身份验证。我按照这篇文章的步骤进行操作,最终在我的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

用户和密码提示出现。但是当我输入正确的用户名和密码后,它一遍又一遍地要求我重新输入。我很确定到用户.xml文件的路径是正确的,尝试使用--verbose选项运行xsp2以获取错误消息,但没有成功。

有人可以帮我调试这种情况吗?


将路径更改为相对路径“users.xml”,并将users.xml文件放置在项目主目录中后,身份验证工作正常。不过我仍然想知道为什么绝对路径没有起作用。 - Adrian Serafin
1个回答

1
如果您在配置文件中指定以 / 开头的路径,则该路径将被解释为您网站的根目录,而不是您文件系统的根目录 - 例如:/home/vadmin/Projects/TestService/TestService。
因此,以 / 开头的路径应相对于网站根文件夹 - 在您的情况下,如果 users.xml 文件位于项目文件夹中,则路径应为 "/users.xml"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接