問題タブ [strongname]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - sn.exe が失敗し、アクセスが拒否されましたというエラー メッセージが表示される
厳密な名前ツールを使用して新しいキーを作成し、.NET アセンブリに署名すると、アクセスが拒否されましたというエラー メッセージが表示されます。これは Windows XP マシンでは問題なく動作しますが、Vista マシンでは動作しません。
この問題の原因と解決方法を教えてください。
PowerShell またはコマンド プロンプトを管理者として実行していますか? User Access Control に慣れるまで、または User Access Control をオフにするまでは、これを最初に確認する場所であることがわかりました。
はい、PS と通常のコマンド プロンプトを管理者として実行してみました。同じエラー メッセージが表示されます。
.net - .snk とは何ですか?
.snk ファイルとは何ですか? 私はそれがStrongly Named Keyの略であることを知っていますが、それが何であり、どのように機能するかについてのすべての説明は頭を悩ませています。
厳密に名前が付けられたキーがどのように使用され、どのように機能するかについて簡単な説明はありますか?
c# - shdocvw.dll 用の強力な名前付き相互運用機能 DLL を作成する方法
(明らかに) shdocvw.dll を参照する C# の Browser Helper Object プロジェクトがあります。shdocvw.dll 用に厳密な名前の相互運用 dll を作成したいと考えています。これを行うにはどうすればよいですか - aximp.exe と tlimp に関する多くの提案を見てきましたが、それらがどのように適合するかは明確ではありません。
c# - 厳密な名前のアセンブリをチェックする
動的に読み込まれたアセンブリが特定の厳密な名前で署名されているかどうかを確認することはできますか?
AssemblyName.GetPublicKey()メソッドから返された値を比較するだけで十分ですか?
これは偽装できませんか?SetPublicKey() メソッドがビルドされたアセンブリに何らかの影響を与えるかどうかはわかりませんが、MSDN のドキュメントでさえ、動的に生成されたアセンブリ (リフレクション エミット) でこれを使用する方法を示しているため、アプリケーションをホストし、それを独自のアセンブリに挿入し、上記がセーフガードである場合は悪意のあるコードを実行しますか、それとも何か不足していますか?
より正確で安全なアプローチはありますか? 逆の状況がシナリオであったかどうか、つまり、署名されたホストによってのみアセンブリが呼び出されないようにする必要がある場合は、アセンブリに StrongNameIdentityPermission 属性でタグを付けることができます。
c# - 「参照されたアセンブリに厳密な名前がありません」エラーを修正する方法
Visual Studio 2005プロジェクト (厳密な名前が付けられています)に弱い名前のアセンブリを追加しました。私は今、エラーが発生しています:
「参照されたアセンブリ 'xxxxxxxx' には厳密な名前がありません」
このサードパーティ アセンブリに署名する必要がありますか?
.net - アセンブリの厳密な名前付けを使用して、アセンブリの作成者を確認できますか?
MSDN の適切な記事、厳密な名前のアセンブリ、および関連するスタック オーバーフローの質問、Checking an assembly for a strong name を読んでいます。
- 改ざんを避けるために、厳密な名前のアセンブリをどの程度まで検証できますか?
- 厳密な名前付けを使用してアセンブリの作成者を確認することはできますか?
最初の質問は、CSharp411 の記事.NET Assembly FAQ – Part 3 – Strong Names and Signingを読んだ後に発生します。この記事では、厳密な名前を使用することの他の問題の中で、これについて言及しています。
「完全な置換を止めることはできません。厳密な名前は、ハッカーが厳密な名前の署名を削除し、アセンブリを悪意を持って変更し、独自のキーで再署名し、アセンブリを自分のものとして偽装することを防ぐことはできません。」
2 番目の質問は、厳密な名前付けと、たとえばAuthenticodeなどの他の署名スキームとの違いを見つけることを目的としています。同じ MSDN の記事で、初期状態について言及されています。
"ただし、厳密な名前自体は、たとえばデジタル署名やサポート証明書によって提供されるような信頼レベルを意味するものではないことに注意してください。 "
作成された目的よりもはるかに多くの目的で厳密な命名を使用しようとしていますか? 厳密な名前付けは、名前の衝突や新しい種類の「GAC DLL 地獄」を回避するためだけに作成されたものですか?
c# - 署名されたアセンブリのみを新しい AppDomain にロードする方法は?
私は、メイン アプリが新しい AppDomain の実行時にアセンブリ Addin1.dll と Addin2.dll をロードするアドイン システムを実行しています。
ただし、Addin1.dll が私のキーで署名され (厳密な名前)、Addin2.dll が署名されていない場合、Addin1.dll のみをロードして Addin2.dll を拒否できるようにしたいと考えています。
AppDomainSetup でいくつかのパラメーターを設定して行う必要があると思われますか?
.net - 厳密な名前のライブラリのバージョンごとに新しい .snk キーファイルが必要ですか?
.snk ファイルを使用してクラス ライブラリに厳密な名前を付けた場合、同じライブラリの新しいバージョンを作成する場合、この .snk ファイルを新しいものに置き換える必要がありますか?
.net - .NET OpenSource プロジェクトと厳密な名前のアセンブリ?
私は現在、自分のプロジェクトをオープンソース化することを考えており、ソース コードとプロジェクト構造を公開する準備を進めています。ここで 1 つの質問があります。アセンブリの署名キーをどのように処理すればよいですか? オープンソース バージョンの新しいキーを作成し、他のファイルと一緒に SVN リポジトリに公開する必要がありますか? キーを省略し、コードをコンパイルしたい人は自分のキーを生成する必要がありますか?
これをどのように処理しますか?署名鍵を公開することに少し違和感を覚えます。
.net - ILMerge 操作によって生成されたアセンブリにどのように署名しますか?
ILMerge を使用して、プロジェクト内のすべてのアセンブリを 1 つのアセンブリにマージすることができましたが、マージされたアセンブリに署名する方法がないようです。
ILMerge によって生成されたマージされたアセンブリに厳密な名前を追加するために実行できるコマンド ライン オプションまたはコマンドはありますか?