Если ваш проект имеет ссылки на Roslyn и вы развертываете его на сервере IIS, вы можете получить нежелательные ошибки на веб-сайте, так как многие хостинг-провайдеры все еще не обновили свои серверы и, следовательно, не поддерживают Roslyn.
Чтобы устранить эту проблему, вам необходимо удалить компилятор Roslyn из шаблона проекта. Удаление Roslyn не должно влиять на функциональность вашего кода. Он работал отлично для меня и некоторых других проектов (C # 4.5.2), над которыми я работал.
Выполните следующие действия:
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
Брелок имеет часы и порядковый номер, который используется в качестве семени для PRNG. Когда Вы совершаете нападки, "показывают мне код" кнопка, брелок отображает число, которое является продуктом той метки времени, и порядковый номер пробегает PRNG. Сервер знает порядковый номер Вашего брелока и время и делает ту же операцию. Если Ваши коды соответствуют, Вы аутентифицируетесь.
можно вычислить предыдущие/следующие значения N на конец сервера для составления расфазировки тактовых сигналов.
Программные условия не необходимы. Просто вообразите две части аппаратных средств (Ваш аппаратный ключ и что-то в компании), которые генерируют те же числа в тех же регулярно запланированных интервалах. Было бы фактически невозможно предположить то, чем число происходит из-за некоторых патентованных алгоритмов, поэтому если число Вы вводите (или автоматически отправляется аппаратным ключом), соответствует числу в сервере, Ваши идентификационные данные проверены.
, По крайней мере, с аппаратным ключом я имею, также необходимо предоставить контакт, известный только Вами и сервером. Так, чтобы аутентифицироваться, Вам нужны и что-то физическое и в что-то в Вашей голове. Ту комбинацию довольно трудно фальсифицировать. Даже если кто-то получает аппаратный ключ, если они не знают Ваш контакт, это бесполезно. И если они знают Ваш контакт, та информация бесполезна без аппаратного ключа.
безопасность Теперь! эпизод 103 говорит о том, как они работают. (Что ссылка к выставочным примечаниям, но существует ссылка в верхней части страницы на аудиоподкаст.)
В основном, брелок синхронизируется с сервером, и они оба отобраны для генерации той же последовательности псевдослучайных чисел. Сервер знает, что это - Вы при вводе правильного числа в нужное время.