Domanda

Sto usando DotNetZip e ho notato che sto riscontrando problemi di autorizzazione su Mac. Questo sembra accadere solo quando utilizzo la disposizione dei contenuti.

cioè se l'ho appena salvato su disco

using (ZipFile zip = new ZipFile(@"C:\zip\temp.zip"))
{
   // this works fine
}

ma se uso la disposizione dei contenuti in questo modo, su Mac le autorizzazioni dell'utente vengono negate (tutti i gruppi sono deselezionati)

Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + filename);

using (ZipFile zip = new ZipFile(Response.OutputStream))
{
    // 
}
È stato utile?

Soluzione

Potresti provare a cambiare ApplicationType in " application / octet-stream " ;. Che ci crediate o no, questo ha già risolto problemi per me prima. Vale comunque la pena provare.

La domanda più grande è: come viene richiesto il file dal lato Mac? Se si tratta di un server Web Windows che offre il file, Windows non può impostare le autorizzazioni sul lato client. Se si tratta di un browser Web (Safari / Firefox), sono probabilmente in esecuzione solo con le impostazioni predefinite. Quindi sapere cosa richiede il file dal Mac potrebbe aiutare a ottenere la risposta giusta.

Altri suggerimenti

Potrebbero esserci diverse ragioni per questo, ma suppongo che ci sia un bug nel framework sul mac. Essere su un Mac presumo che tu stia usando il mono, quindi contatta il gruppo Mono e vedi cosa hanno da dire. Inoltre hanno un forum abbastanza buono abbastanza bene da vedere cosa hanno da dire.

Infine, se riscontri errori utilizzando " disposizione-contenuto " ;, allora non usare " disposizione-contenuto " e usa il modo in cui funziona.

Non so se abbia qualcosa a che fare con DotNetZip, ma esiste una versione successiva della libreria ora - v1.7. Fa la crittografia AES, ZIP64, un sacco di altre cose. E la versione v1.8 ha alcune nuove interessanti funzionalità di Seelctor, oltre a un sostituto di GZipStream.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top