我使用machine.config不僅適用於ASP.NET,也適用於整體配置。我在C#中實現了一個散列算法(Tiger),並希望它可以通過機器請求來使用。所以,我的註冊程序集在GAC並添加以下到的machine.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass Tiger192="Jcs.Tiger.Tiger192, Jcs.Tiger, Culture=neutral, PublicKeyToken=66c61a8173417e64, Version=1.0.0.4"/>
<cryptoClass Tiger160="Jcs.Tiger.Tiger160, Jcs.Tiger, Culture=neutral, PublicKeyToken=66c61a8173417e64, Version=1.0.0.4"/>
<cryptoClass Tiger128="Jcs.Tiger.Tiger128, Jcs.Tiger, Culture=neutral, PublicKeyToken=66c61a8173417e64, Version=1.0.0.4"/>
</cryptoClasses>
<nameEntry name="Tiger" class="Tiger192"/>
<nameEntry name="TigerFull" class="Tiger192"/>
<nameEntry name="Tiger192" class="Tiger192"/>
<nameEntry name="Tiger160" class="Tiger160"/>
<nameEntry name="Tiger128" class="Tiger128"/>
<nameEntry name="System.Security.Cryptography.HashAlgorithm" class="Tiger192"/>
</cryptoNameMapping>
<oidMap>
<oidEntry OID="1.3.6.1.4.1.11591.12.2" name="Jcs.Tiger.Tiger192"/>
</oidMap>
</cryptographySettings>
</mscorlib>
</configuration>
這使我的代碼看起來像這樣:
using (var h1 = HashAlgorithm.Create("Tiger192"))
{
...
}
而且也對Jcs.Tiger沒有依賴性。我的代碼中的所有dll程序集都是硬的或軟的。
已經做了5年以上。這很棒。 – Portman 2008-09-18 19:48:36