0

マルチファイル アセンブリをビルドできるように、MVC プロジェクトを調整したいと考えています。私の意図は、概念実証として、ルート web.config を MVC アセンブリの一部にすることです。そうする理由は、web.config ファイルの改ざんを防ぐためです。

MVC プロジェクトの推定される「変更する必要がある」セクションは次のとおりです。

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

インポートに「影響を与える」方法を思い出せません。たとえば、cscビルド ステップでアセンブリではなくモジュールを生成するように設定できるプロパティはありますか? そして、それを達成したとしても、結果のモジュールのリスト (つまり、itemGroup) が必要なので、それをリンカー (「csc /out」または「al /out /target」のいずれか) にフィードできます。

誰もこれを以前にやったことがありますか?ポインタ?

4

1 に答える 1

1

web.config からのすべてのデータを、暗号化できる個別のデータ ファイルに分割できます。web.config は次のようになります。

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=%ASSEMBLY_VERSION%, Culture=neutral, PublicKeyToken=%MICROSOFT_PUBLICKEY%">
            <section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
            <!-- Other system.web sections -->
        </sectionGroup>
  </configSections>
  <system.web configSource="OtherFile.config"/>
</configuration>

次に、「その他のファイル」を暗号化して、改ざんできないようにすることができます。

<?xml version="1.0" encoding="utf-8" ?>    
<system.web>   
     <machineKey validationKey="D61B3C89CB33A2F1422FF158AFF7320E8DB8CB5CDA1742572A487D94018787EF42682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
       decryptionKey="FBF50941F22D6A3B229EA593F24C41203DA6837F1122EF17" />
   </system.web>

セクション データの暗号化に関する MS のドキュメントを参照してください: http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx

埋め込まれませんが、人間が読めるテキストを超えて難読化されます。それが役立つことを願っています!

于 2012-07-18T01:43:54.990 に答える