2013-04-08 2 views
0

Я деволюционирую приложение с dll dotras. В приложении моя главная цель - подключиться к Интернету с помощью USB-модема 3g. Я добавляю мой код ниже:DotRas исключение несанкционированного доступа при добавлении телефонной книги в запись

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. Итак, какие разрешения он сделал, чтобы добавить запись в телефонную книгу?

Любые идеи?

ответ

2

Я нашел ответ. Причина, по которой мне нужно повысить привилегии для приложения, - это приложение, открывающее телефонную книгу профиля пользователя All User. Это подтверждается моим вызовом book.Open()

Если у вас возникла такая проблема, помните, что вы всегда можете сохранить телефонную книгу рядом с вашим приложением, что избавит вас от необходимости поднять права доступа.

Код должен быть:

  RasPhoneBook book = new RasPhoneBook(); 
      book.Open(".\\MyAppPhoneBook.pbk"); 
+0

Просто хотел бы добавить, если вы храните в телефонной книге рядом с приложением, которое не будет иметь возможность хранить учетные данные, которые могут быть общими для всех пользователей. Пользовательские местоположения позволяют только сохранить учетные данные для каждого пользователя. –

Смежные вопросы