Подтвердить что ты не робот

Как отключить использование System.Security.Permissions.ReflectionPermission в новом шаблоне Asp.net VS2013, чтобы он работал на общем хостинге

Я создал совершенно новое приложение Visual Studio 2013 ASp.net MVC из шаблона MVC по умолчанию. Однако я получаю сообщение об ошибке Запрос на разрешение типа "Ошибка System.Security.Permissions.ReflectionPermission.

Можно ли отключить это разрешение Reflection, чтобы сайт все еще работал?

вот мой web.config

<?xml version="1.0" encoding="utf-8"?>
    <!--
    For more information on how to configure your ASP.NET application, please visit
    http://go.microsoft.com/fwlink/?LinkId=301880
    -->
    <configuration>
    <configSections>

      <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    </configSections>
    <connectionStrings>
      <add name="MyDb" connectionString="Data Source=x.x.com;Initial Catalog=x;User Id=x;Password=x;" providerName="System.Data.SqlClient" />
    </connectionStrings>
    <appSettings>
      <add key="webpages:Version" value="3.0.0.0" />
      <add key="webpages:Enabled" value="false" />
      <add key="ClientValidationEnabled" value="true" />
      <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    </appSettings>
    <system.web>
    <trust level="Full" />
      <customErrors mode="Off"/>
      <authentication mode="None" />
      <compilation targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
    <system.webServer>
      <modules>
        <remove name="FormsAuthenticationModule" />
      </modules>
    </system.webServer>
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    <entityFramework>
      <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
          <parameter value="v11.0" />
        </parameters>
      </defaultConnectionFactory>
      <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      </providers>
    </entityFramework>
    </configuration>

Сведения об исключении: System.Security.SecurityException: запрос на разрешение типа 'System.Security.Permissions.ReflectionPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' не удалось.

[SecurityException: запрос на разрешение типa > 'System.Security.Permissions.ReflectionPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' не удалось.]    System.Delegate.DelegateConstruct(целевой объект, интервал IntPtr) +0    Owin.Loader.DefaultLoader..ctor(Func 3 next, Func 2 активатор, IEnumerable 1 referencedAssemblies) +69 Microsoft.Owin.Host.SystemWeb.OwinBuilder.GetAppStartup() +65 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() +28 System.Threading.LazyInitializer.EnsureInitializedCore(T& target, Boolean& initialized, Object& syncLock, Func 1 valueFactory) +115    Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(контекст HttpApplication) +106    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, контекст HttpContext, обработчики MethodInfo []) +418    System.Web.HttpApplication.InitSpecial(состояние HttpApplicationState, обработчики MethodInfo [], контекст приложения IntPtr, контекст HttpContext) +172    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(контекст приложения IntPtr, контекст HttpContext) +336    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

Я попытался добавить

<trust level="Full" />

в мой раздел Web.Config system.Web, но это не сработало, поскольку я получил

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

это общий хостинг на сайте 1and1.com, и они не дадут мне полного доверия.

4b9b3361

Ответ 1

Я сразу спросил у команды asp.net, и это был их ответ

Мы официально объявили, что частичное доверие больше не является границей доверия для целей изоляции приложений в прошлом году (http://support.microsoft.com/kb/2698981) и как таковой наша рекомендация обмениваться хостинг-провайдерами - это не использовать его больше. Двигаясь вперед, мы не будем поддерживать частичное доверие к новым функциям фреймворка, которые мы разрабатываем по этой причине.

Я знаю много людей, использующих общий хостинг, и поскольку хост-провайдеры никогда не будут полностью доверять своим хостинговым продуктам, я предполагаю, что Microsoft приняла это решение, чтобы они могли привлечь больше клиентов на Azure.

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

Ответ 2

http://www.codeproject.com/Questions/586223/SecurityplusExceptionpluscomingplusinplusaplusrunn

Решение 4 System.Security.SecurityException: запрос на разрешение типа "System.Net.SocketPermission, System, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" не удалось

Следующее решение выше ошибки

<system.web>
    <customErrors mode="Off"/>
    <trust level="Full" />
</system.web>

Работает для моего хождения в ходьбе

Ответ 3

Частичное доверие не поддерживается для пакета Microsoft.Owin.Host.SystemWeb. Это пакет, который помогает выполнять OWIN middlewares на интегрированном конвейере IIS. Эта сборка делает отражение для обнаружения и загрузки класса запуска OWIN. Вы можете отключить это, добавив appSetting, но, к сожалению, средние средства OWIN не будут работать, поскольку обнаружение запуска отключено. Короткий ответ - невозможно выполнить частичное доверие.

Ответ 4

Если у вас есть следующие условия:

1) Необходимо использовать уровень доверия уровня или ниже из-за обязательных требований безопасности.

2) Использование ASP.Net 4.5

3) Не нужно использовать Owin для разрешения внешних поставщиков проверки подлинности, таких как Google или Facebook.

4) Информация об ошибках приложения показывает, что Owin участвует в предотвращении запуска вашего приложения под средним доверием.

Вы можете добавить следующую строку в раздел WebSphere AppSettings, чтобы отключить Owin, и вы сможете запустить свою программу на уровнях среднего уровня доверия:

<add key="owin:AutomaticAppStartup" value="false" />

Ответ 5

С 7.2.x на GoDaddy Plesk у меня были проблемы с безопасностью.

Разрешающая способность для меня заключалась в том, чтобы добавить уровень доверия ниже пользовательских атрибутов вручную в мой web.config(если вы используете панель инструментов godaddy, чтобы добавить это, она помещает его в каталог umbraco не в верхний корень сайта).