Pergunta

Quando eu criar um aplicativo Azure ASP.NET, por padrão .NET nível de confiança é a confiança completa. Eu sempre alterá-lo para o Windows Azure confiança parcial que é semelhante ao nível médio de confiança do ASP.NET.

Você pode fazê-lo quer através da utilização GUI quando você selecione Propriedades sobre o Papel ou definindo enableNativeCodeExecution para false no arquivo de definição (.csdef) como abaixo:

<WebRole name="ServiceRuntimeWebsite" enableNativeCodeExecution="false">

Como um desenvolvedor consciente da segurança Quero por padrão para executar o meu aplicativo no modo de confiança parcial que fornece um maior nível de segurança. Se eu precisar usar algo como reflexo ou P / Invoke, como um desenvolvedor eu quero tomar a decisão de reduzir esse nível de confiança por mim.

Eu tenho certeza que há uma razão pela qual a Microsoft decidiu usar a confiança completa como um nível de confiança padrão .NET, eu só não vê-lo. Se você sabe a razão, ou você acha que sabe, por favor me avise.

Foi útil?

Solução

Confiança total é não só necessário para P / Invoke para .NET reflexão também. Como resultado linha de fundo, aplicativos quase todos de tamanho moderado precisa plena confiança, porque quase todas as bibliotecas generalizadas precisar dele também (NHibernate por exemplo). Na verdade, eu tenho vindo a pedir desde o exata questão oposto nos fóruns Azure também.

Outras dicas

A questão da pertence confiança total ou parcial para o ambiente em que seu aplicativo é executado. O mais controle e / ou a "propriedade" do ambiente e montagens você tiver, mais aceitável é ter configurações de confiança total.

Por exemplo, se você criar um web site Azure (julho 2012 capacidade) e, imitando wordpress ou Umbraco, o site permite que plugins de montagem arbitrários para ser baixado e instalado, então é importante ter um ambiente parcialmente confiável. É possível que um dos plugins baixado e executado, o que você não controla ou próprios, contém malware. Não só este impacto sobre a segurança ea estabilidade do seu web site, mas alguns podem argumentar que os impactos outros hospedados web-sites (multi-tenant), que não têm relação com o seu.

Certamente o seu site vai contar com bibliotecas 3o partido, como Log4Net ou StructureMap, mas esses são extremamente bem conhecido e bibliotecas que não estão em causa sobre o seu impacto de segurança aprovados. Ergo, se você estiver executando um web-papel Azure (a muito menos "multi-tenant" tipo de caso) e você está apenas correndo como "confiável" 3o partido apps, então não há realmente um problema com o funcionamento como de confiança total.

Sim, infelizmente, ainda é muito difícil (se não impossível) para escrever grande .NET aplicativos que são executados em confiança parcial.

Precisamos muito melhor tecnologia e as ferramentas (como CAS.NET)

Porque a confiança média é agora oficialmente obsoletos. Se você iniciar um novo projeto da Web no Visual Studio, que já requer confiança total (e não funciona confiança parcial). Microsoft diz: não dependem de confiança média, em vez disso, use Full Trust, e as aplicações não confiáveis ??isolados em pools de aplicativos separados

.

Fontes:

Stackoverflow resposta: Citado resposta equipe ASP.NET

Microsoft: ASP.NET confiança parcial não isolamento de aplicativos garantia

Microsoft: desenvolvimento web ASP.NET melhores práticas

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top