0

dotras dll を使用してアプリケーションを開発しています。アプリケーションでの私の主な目標は、3g USB モデムでインターネットに接続することです。以下にコードを追加しています:

    RasPhoneBook book = new RasPhoneBook();
    book.Open();
    dialer = new RasDialer();
    dialer.StateChanged += new EventHandler<StateChangedEventArgs>  (dialer_StateChanged);
    RasDevice device = RasDevice.GetDeviceByName("ZTE", RasDeviceType.Modem);
    RasEntry entry = RasEntry.CreateDialUpEntry("MyEntry", "*99#", device);
    entry.EncryptionType = RasEncryptionType.Optional;
    entry.Options.ModemLights = true;
    entry.NetworkProtocols.IP = true;
    entry.NetworkProtocols.Ipx = false;
    book.Entries.Add(entry);
    dialer.PhoneBookPath = book.Path;
    dialer.EntryName = "MyEntry";
    dialer.Dial();

電話帳を自分のエントリに追加しようとすると、例外が返されます:

UnauthorizedAccessException was Unhandled

呼び出し元には、要求されたアクションを実行するために必要なアクセス許可がありません。

私は DotRas については初めてです。では、電話帳にエントリを追加するには、どの権限が必要なのでしょうか?

何か案は?

4

1 に答える 1

2

私は答えを見つけました。アプリケーションの権限を昇格する必要があるのは、アプリケーションがすべてのユーザーのプロファイルの電話帳を開くためです。これは、book.Open() への呼び出しによって示されます。

このような問題が発生した場合は、いつでもアプリケーションの隣に電話帳を保存できることを思い出してください。これにより、アクセス許可を昇格させる必要がなくなります。

コードは次のとおりです。

           RasPhoneBook book = new RasPhoneBook();
           book.Open(".\\MyAppPhoneBook.pbk");
于 2013-04-09T06:52:02.837 に答える