Mono 2.8.1 環境で、Basic および Digest 認証用 HTTP モジュールを試してみた。
上記リンク先下半分に記載されている情報を参考にした訳だが、不備もあったりしたので、ちょっと修正したイカの設定で試してみた。
Basic 認証
web.config: 必要な部分を抜粋<?xml version="1.0"?>
<configuration>
<system.web>
...
<authentication mode="None">
</authentication>
<authorization>
<allow roles="testers"/>
<deny users="*" />
</authorization>
...
<httpModules>
<!-- For Basic Authentication -->
<add name="BasicAuthenticationModule" type="Mono.Http.Modules.BasicAuthenticationModule, Mono.Http, Version=2.0.0.0, PublicKeyToken=0738eb9f132ed756" />
</httpModules>
...
</system.web>
<appSettings>
<!-- Set the value to "Basic" or "Digest" -->
<add key="Authentication" value="Basic" />
<!-- For Basic Authentication -->
<add key="Basic.Users" value="/path/to/users.xml" />
<add key="Basic.Realm" value="My Realm" />
</appSettings>
</configuration>
users.xml: こんな感じ
<?xml version="1.0" encoding="utf-8"?>
<users>
<user name="nobita" password="password">
<role name="users" />
</user>
<user name="sta" password="password">
<role name="admins" />
<role name="testers" />
<role name="users" />
</user>
<user name="tiger" password="password">
<role name="testers" />
<role name="users" />
</user>
</users>MonoDevelop 2.4.1 上で、ASP.NET プロジェクトを作成して、実行した。
情報元では、web.config でのイカの記述が欠けており、
...
<appSettings>
<!-- Set the value to "Basic" or "Digest" -->
<add key="Authentication" value="Basic" />
...
</appSettings>
...
この設定がないと試せない。HTTP モジュールを内包している Mono.Http アセンブリについては、Mono 2.8.1 では、イカのように GAC に存在しており、
$ gacutil -l | grep Mono.Http Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756 Mono.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756
xsp2(ASP.NET 2.0/3.5 プロファイル)用としては、Version=2.0.0.0 の方を使用すればいいだろう。
Digest 認証
web.config: これ以外は、Basic 認証用設定と同様<?xml version="1.0"?>
<configuration>
<system.web>
...
<httpModules>
<!-- For Digest Authentication -->
<add name="DigestAuthenticationModule" type="Mono.Http.Modules.DigestAuthenticationModule, Mono.Http, Version=2.0.0.0, PublicKeyToken=0738eb9f132ed756" />
</httpModules>
...
</system.web>
<appSettings>
<!-- Set the value to "Basic" or "Digest" -->
<add key="Authentication" value="Digest" />
<!-- For Digest Authentication -->
<add key="Digest.Users" value="/path/to/users.xml" />
<add key="Digest.Realm" value="My Realm" />
</appSettings>
</configuration>


0 件のコメント:
コメントを投稿