Pergunta

Eu estou tentando instalar Subtext em um ambiente de nível médio de confiança (host: CrystalTech ) e estou recebendo o seguinte erro (veja abaixo). Eu era capaz de fazer a instalação administração, mas quando ele tenta ir para o blog para uso real, bum.

Eu sei que poderia "upgrade" o ambiente a um nível de confiança total, mas eu quero entender por que o erro está acontecendo e as ramificações de que a mudança para confiança total antes de fazê-lo.

Para expandir sobre esta questão; quais são os "níveis de confiança"?

Exceção de segurança

Descrição: O aplicação tentou efectuar uma operação não permitida pela segurança política. Para conceder este aplicativo a permissão necessária contato por favor o administrador do sistema ou alteração nível de confiança do aplicativo no arquivo de configuração.

Detalhes da exceção: System.Security.SecurityException: Solicitação da permissão de tipo 'System.Security.Permissions.SecurityPermission, mscorlib, versão = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' falhou.

Fonte de erro:

Uma exceção não tratada foi gerada

durante a execução da atual solicitação da web. Informações sobre a origem e ao local da exceção podem ser identificadas utilizando a excepção Rastreio da pilha abaixo.

Stack Trace:

[SecurityException: solicitação da permissão do tipo 'System.Security.Permissions.SecurityPermission, mscorlib, versão = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' falhou.]
System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal (String virtualPath, o usuário IPrincipal, String verbo) +47
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl (String url) +66
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage (HttpHandler item, HttpContext context) 143
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandler (HttpContext contexto, String requestType, String url, String caminho) +340
System.Web.HttpApplication.MapHttpHandler (HttpContext contexto, requestType corda, caminho VirtualPath, String pathTranslated, booleano useAppConfig) 175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () 128 System.Web.HttpApplication.ExecuteStep (IExecutionStep etapa, Boolean & completedSynchronously) 161

Foi útil?

Solução

Eu não acho que não há outra maneira de contornar o erro diferente de se mudar para a confiança total ou remover a chamada para CheckUrlAccessForPrincipal () e recompilar.

Mas pela aparência das coisas, esta questão em particular já foi corrigido no SVN subtexto (revisão 3290). Eles também acrescentaram uma nova tarefa de compilação de subtexto 2.0.1 que deve incluir a correção. Eu acho que será lançado quando estiver pronto.

Outras dicas

níveis de confiança são realmente apenas ponteiros para alguns arquivos Security.config. Os níveis dafault confiança são definidos em C:. \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ web.config, "Medium" confiança apontando para web_mediumtrust.config

Como para a excepção, tendo um olhar para System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal () com reflector revela que o método é atribuída com [SecurityPermission (SecurityAction.Demand, sem restrições = true)], o que significa que ele requer uma permissão de segurança irrestrita, o que ele não tem executado sob confiança média.

Mais munição para adicionar ao moinho de csgero:

http: // www .kowitz.net / Arquivo / 2008/08/15 / upgrade-to-subtexto-2.0-fail.aspx

Há um comentário wee de Phil Haack, eu acho que ele está ocupado com outras coisas agora:)

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