VB.NET 2008で質問です。


Windowsは複数ユーザからのログインをサポートしています。
しかし、現在作成しているソフトは(商業的な)セキュリティの都合上、最初にインストールしたログインユーザの操作以外は
アンインストール以外の操作を拒否したいと考えています。
※2人目からのインストール操作も拒否します。

このような実装をするには、どの様な設計にすればいいのでしょうか?
参考になるURLだけでも構いません。
よろしくお願いいたします。

なお、OSはWindowsXP SP2 + .NET Framework 3.5以降とします。
Vista/ 2008 / 7(と各64bit版)も含みます。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/05/01 20:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:heke2mee No.1

回答回数162ベストアンサー獲得回数43

ポイント35pt
役に立つ情報かわかりませんが少し調べてみました。


ClickOnceのインストール/アンインストール処理の前後に独自の処理を追加できないので
レジストリの登録は実行時にする必要があります。ClickOnce の配置で 
HKEY_LOCAL_MACHINE (HKLM) にアクセスするには、完全信頼(Full Trust)アクセスの許可が必要です。


また実行時に登録したレジストリはアンインストール時に削除できないので
ゴミとして残るという問題が発生します。



>>なお私が今考えているのは、レジストリに最初に起動させたユーザ名を記入して
>>他のユーザが起動した場合には、レジストリと比較して拒否する方法を考えています。

  同じPCでライセンスを2つ購入して使用することも考えられるので
  ユーザごとにライセンスの有無を判定する必要があります。
 
  オンラインでバージョンの管理を行うのでしたらユーザの管理もオンラインにしてしまえばいいのでは?



ClickOnce の配置を管理する 
http://msdn.microsoft.com/ja-jp/library/aa480721.aspx#adminc_topic5

    >>* HTTP(S) を介した Windows 認証
    >>* アプリケーションに設計されたカスタム認証
    >>* アプリケーション起動時のクエリ文字列パラメータの使用 
    >>(インストールされたアプリケーションの埋め込みユーザー資格情報を使用した動的なマニフェスト生成が必要)
    >>* カスタム クライアント プロキシとカスタム HTTP モジュールの認証



第6回 ClickOnceの運用を成功させる5つのポイント
http://www.atmarkit.co.jp/fdotnet/clickonce/clickonce06/clickonce06_01.html

その他の回答1件)

id:heke2mee No.1

回答回数162ベストアンサー獲得回数43ここでベストアンサー

ポイント35pt
役に立つ情報かわかりませんが少し調べてみました。


ClickOnceのインストール/アンインストール処理の前後に独自の処理を追加できないので
レジストリの登録は実行時にする必要があります。ClickOnce の配置で 
HKEY_LOCAL_MACHINE (HKLM) にアクセスするには、完全信頼(Full Trust)アクセスの許可が必要です。


また実行時に登録したレジストリはアンインストール時に削除できないので
ゴミとして残るという問題が発生します。



>>なお私が今考えているのは、レジストリに最初に起動させたユーザ名を記入して
>>他のユーザが起動した場合には、レジストリと比較して拒否する方法を考えています。

  同じPCでライセンスを2つ購入して使用することも考えられるので
  ユーザごとにライセンスの有無を判定する必要があります。
 
  オンラインでバージョンの管理を行うのでしたらユーザの管理もオンラインにしてしまえばいいのでは?



ClickOnce の配置を管理する 
http://msdn.microsoft.com/ja-jp/library/aa480721.aspx#adminc_topic5

    >>* HTTP(S) を介した Windows 認証
    >>* アプリケーションに設計されたカスタム認証
    >>* アプリケーション起動時のクエリ文字列パラメータの使用 
    >>(インストールされたアプリケーションの埋め込みユーザー資格情報を使用した動的なマニフェスト生成が必要)
    >>* カスタム クライアント プロキシとカスタム HTTP モジュールの認証



第6回 ClickOnceの運用を成功させる5つのポイント
http://www.atmarkit.co.jp/fdotnet/clickonce/clickonce06/clickonce06_01.html

id:HALSPECIAL No.2

回答回数407ベストアンサー獲得回数86

ポイント35pt

プロダクトアクティベーションはいかがでしょうか?

ソフト本体だけでなく、認証用の外部HTTPサーバーと通信させて認証させる方法です。

  • インストール時→通信→アクティベート
  • アンインストール時→通信→ディアクティベート
  • 実行制御時→通信→実行可否


このようなサービスもあるようですが、細かく制御したいのであれば、自前で(ホスト側、クライアント側を)実装する必要があると思います。

http://www.cosmosoft.org/Activation/MakeSample.htm

  • id:halohalolin
    なお私が今考えているのは、レジストリに最初に起動させたユーザ名を記入して
    他のユーザが起動した場合には、レジストリと比較して拒否する方法を考えています。

    しかし、オンラインでバージョンアップできるようにClickOnceでの配布を予定していますが
    そうするとインストールの時点で拒否するということは実装できないのかな?と想像しています。

    よろしくお願いいたします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません