Тривиальное решение состояло бы в том, чтобы разделить полигон к треугольникам и совершить нападки, тестируют треугольники, как объяснено здесь
, Если Ваш полигон ВЫПУКЛ мог бы быть лучший подход все же. Посмотрите на полигон как на набор бесконечных строк. Каждое деление строки располагает с интервалами в два. для каждой точки легко сказать если относительно одной стороны или другой стороны строки. Если точка находится на той же стороне всех строк затем, это в полигоне.
Обычно вы даете разрешения сертификату . Я использую такой метод, чтобы найти индивидуальный сертификат и предоставить разрешения. Если вы используете сертификат, выданный публичной организацией, такой как Verisign, Thawte и т. Д., В этом, вероятно, нет необходимости.
FindPrivateKey.exe My LocalMachine –n "CN=<certificate issuer>"
... найдет сертификаты на локальном компьютере в личном хранилище для определенного эмитента.
Примечание. Если FindPrivateKey отсутствует на вашем локальном компьютере, загрузите образцы WCF, включая инструмент FindPrivateKey, по адресу http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21459
FindPrivateKey возвращает расположение закрытого ключа для сертификата, аналогично
"C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030".
Выполните следующую команду строка для назначения разрешений на доступ только для чтения идентификатору процесса службы ASP.NET/WCF
cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030" /E /G "NT AUTHORITY\NETWORK SERVICE":R
ПРИМЕЧАНИЕ. Если вы используете Microsoft Windows® XP, предоставьте разрешения сертификата для удостоверения ASPNET вместо удостоверения NT Authority \ Network Service. , потому что процесс IIS выполняется под учетной записью ASPNET в Windows XP.
Сертификаты можно просмотреть в оснастке MMC для сертификатов. Откройте MMC, выберите File -> Add / Remove Snap in, нажмите кнопку добавления и выберите сертификаты. Отсюда вам нужно будет выбрать соответствующий магазин (обычно учетная запись компьютера - локальный компьютер для ASP. NET) для управления, а затем вы можете просматривать / администрировать сертификаты.
Внимательно изучите различные параметры командной строки и убедитесь, что у вас есть четкое представление о том, что такое сертификаты и как они работают, прежде чем предоставлять какие-либо разрешения.
Не очень люблю отвечать на свои вопросы, но один простой способ избавиться от этой ошибки - просто предоставить сетевой службе полный доступ к диску c: \ и распространить разрешения вниз.
Вы меня пристрелите, я знаю, рассказывая, как это плохо, но это работает.
Учетная запись сетевой службы, под которой по умолчанию работает asp.net, не имеет доступа к личным сертификатам локального компьютера. Предоставьте доступ следующим образом:
Репост с Sohnee @ forum.asp.net
Шаг 1 - если у вас его еще нет установлен - получить WinHttpCertCfg
Шаг 2 - если у вас уже есть сертификат установлен на машине и вам просто нужно предоставить доступ к Сетевые службы:
WinHttpCertCfg.exe -g -c LOCAL_MACHINE \ MY -s "IssuedToName" -a "NetworkService"