"That assembly does not allow partially trusted callers" kod pokušaja potpisivanja

Nov 24, 2012 at 6:46 PM
Edited Nov 24, 2012 at 6:50 PM

Da li je netko imao ovakvih poruka:

- client Win XP SP2
- instaliran root certifikat
- korisnikovom certifikatu se pristupa kao .pfx
- FiskalizacijaDEV.COM.dll registriran sa regasm 
- delphi XE2 aplikacija se nalazi na serveru, a pristupa joj se sa ove stanice
- poruka se javlja kod pokušaja potpisivanja XML datoteke cis.Potpisi...

Istoj aplikaciji se istovremeno uredno pristupa sa druge stanice Win 7 ultimate i ista operacija radi bez problema tj. uspješno potpisivanje.

Ovo su situacije kojih se bojim u praksi gdje ima na tisuće različitih računala i isti postupak pripreme kod nekih prolazi kod nekih ne.

Pitanje, da li je to situacija gdje treba nešto odraditi/podesiti na tom računalu ili je moguće nešto nešto podesiti u COM assembliu za ver 1.3?
Naime bilo bi poželjno ako se može sam COM.dll podesiti za takve situacije kao npr.

adding the partial trusted caller attribute
[assembly:System.Security.AllowPartiallyTrustedCallers]

Neki linkovi sa tom problematikom:

http://msdn.microsoft.com/en-us/library/ms345097.aspx

http://blogs.msdn.com/b/shawnfa/archive/2005/02/04/367390.aspx

http://stackoverflow.com/questions/3487001/assembly-does-not-allow-partially-trusted-caller

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/d2ed2b53-6598-45fc-8600-a141720a67b5

 

Coordinator
Nov 25, 2012 at 8:09 AM

Svakako ćemo se ovime malo više pozabaviti kod izdavanja produkcijske verzije, čekamo da se Zakon donese prije nego izdamo prvu produkcijsku verziju.

Dec 3, 2012 at 2:32 PM

Imamo isti problem, međutim javlja nam se i na računalu sa Windows 7. Da li to riješeno u produkcijskoj verziji?  Hvala

Coordinator
Dec 9, 2012 at 10:18 AM

Rješili smo ovo u produkcijskoj verziji (v2.0), nismo isprobali, vi kojima to treba, javite kako radi :)

Dec 10, 2012 at 3:35 PM

Probao u vezi toga sa 17602, ali ista greška.

Zatim sam problao u AssemblyInfo.cs dodati red:
[assembly: System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.RequestMinimum, Name = "FullTrust")]

, ali tada uopće nisam mogao kreirati komponentu u kodu:
cis := CreateOleObject('Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav');

Coordinator
Dec 10, 2012 at 4:30 PM

Nisam baš siguran kako je ovo vezano uz COM - "partially trusted callers" se tipično odnosi na situaciju u kojoj je, sigurnosti radi, ograničeno pozivanje .NET assembly-a (nema veze s COM-om). Tipičan primjer je, na primjer, neki web server na kojem se hostaju stotine različitih web site-ova; administratori u tom slučaju pribjegavaju višem nivou sigurnosti i ograničavaju kod koji se može izvršavati u takvom okruženju. 

Kažem - nismo sami isprobavali, tako da je ovo sve teorija :)

Dec 10, 2012 at 4:51 PM

Ne mora sve biti idealno. Treba računati da će neki korisnici ipak morati svoj Win XP morati zamijeniti sa recimo Win 7, ako je to uopće problem vezan u XP, a ne općenito uz sigurnosne postavke.
Bitno da se radi o izuzecima.

ps
U kojoj datoteci ste i koju izmjenu napravili u vezi tog problema?

Coordinator
Dec 10, 2012 at 5:42 PM

U  Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav:

[assembly: AllowPartiallyTrustedCallers]namespace Raverus.FiskalizacijaDEV{    /// <summary>    /// Koristi se za komunikaciju sa CIS-om.</summary>    /// <remarks>    /// Ovo je osnovna klasa čija je namjena pozivanje web metoda CIS-a: Echo, RacunZahtjev i PoslovniProstorZahtjev.    /// </remarks>    public class CentralniInformacijskiSustav
{
..... 

Dec 11, 2012 at 2:35 PM

 

Hm, neznam gdje je nesporazum, ali u projektu Raverus.FiskalizacijaDEV i datoteci CentralniInformacijskiSustav.cs nema nigdje teksta koji sadrži "AllowPartiallyTrustedCallers" !?

Nema ga ni u AsemblyInfo.cs.

Gledam u kodu 17602, a koji je zadnji dostupan na linku http://fiskalizacija.codeplex.com/SourceControl/changeset/view/17602

 

Coordinator
Dec 11, 2012 at 2:37 PM

Nema jer još nismo objavili v2.0- stvar je u tome da smo v2.0 htjeli objaviti prošli tjedan, onda su iz Porezne najavili novu tehničku specifikaciju i rekli su da CIS od ovog ponedjeljka radi po novoj specifikaciji, pa smo procijenili da nam je bolje v2.0 uskladiti sa ovom zadnjom specifikacijom.

U svakom slučaju, skini kod koji je gore, to je RC verzija, i dodaj sam ovu jednu liniju pa javi da li to radi kako treba.

Dec 11, 2012 at 2:45 PM

Možeš malo preciznije navesti kompletnu liniju, u kojoj datoteci i u kojoj liniji tj. da li ide sljedeće ...

Projekt:
Raverus.FiskalizacijaDEV

Datoteka :
AssemblyInfo.cs

Sadržaj linije koda:
[assembly: AllowPartiallyTrustedCallers]

Broj linije:
Rekao bih bilo gdje.

 

 

Coordinator
Dec 11, 2012 at 2:47 PM

Vidi: Mon at 6:42 PM