Správičky 2 275 Blogy 579 Fórum 14 090

Prehľad diskusie

photo
Serializacia v Medium Trust
marianguru
21. 7. 2010 18:46:59
photo
RE: Serializacia v Medium Trust
vlko
21. 7. 2010 20:14:05
photo
RE: Serializacia v Medium Trust
marianguru
26. 7. 2010 15:48:01
photo
RE: Serializacia v Medium Trust
vlko
26. 7. 2010 15:54:16
photo
RE: Serializacia v Medium Trust
marianguru
26. 7. 2010 15:56:59
photo
RE: Serializacia v Medium Trust
vlko
26. 7. 2010 16:25:08
photo
RE: Serializacia v Medium Trust
marianguru
26. 7. 2010 16:37:59
photo
RE: Serializacia v Medium Trust
marianguru
26. 7. 2010 17:18:07
photo
RE: Serializacia v Medium Trust
vlko
26. 7. 2010 19:31:20
photo
RE: Serializacia v Medium Trust
marianguru
26. 7. 2010 20:09:52
photo
RE: Serializacia v Medium Trust
vlko
27. 7. 2010 9:02:36
photo
RE: Serializacia v Medium Trust
marianguru
27. 7. 2010 9:22:04
photo
RE: Serializacia v Medium Trust
vlko
27. 7. 2010 10:13:02
photo
RE: Serializacia v Medium Trust
marianguru
30. 7. 2010 18:24:09
photo
RE: Serializacia v Medium Trust
vlko
30. 7. 2010 20:58:01

Serializacia v Medium Trust

photo
marianguru
21. 7. 2010 18:46:59
Body: 745
Najaktívnejší č.: 27

Serializacia v Medium Trust

Caute,
nemate niekto skusensost ako urobit serializaciu objektu v Medium Trust leveli pomocou standardnych .NET kniznic. Viem, ze je to banalita zoserializovat si do xml objekt svojim kodom, ale preco nevyuzit standartne riesenie ako toto, ktore v medium trust leveli generuje security vynimku?
public class CoTechnics
{
public static string Serialize(List<CoTechnic> list)
{
XmlSerializer s
= new XmlSerializer(typeof(List<CoTechnic>));
StringWriter w
= new StringWriter();
s.Serialize(w, list);
w.Close();
return w.ToString();
}


public static List<CoTechnic> Deserialize(string xml)
{
XmlSerializer s
= new XmlSerializer(typeof(List<CoTechnic>));
StringReader r
= new StringReader(xml);
List
<CoTechnic> list = (List<CoTechnic>)s.Deserialize(r);
r.Close();
return list;
}

}


[Serializable]
public class CoTechnic
{
public string Shortcut { get; set; }
public int Time { get; set; }

public CoTechnic()
{
}


public CoTechnic(string shortcut, int time)
{
Shortcut
= shortcut;
Time
= time;
}

}

Viac hláv - viac kapusty

[Reakcia]

photo
vlko
21. 7. 2010 20:14:05
Body: 35145
Najaktívnejší č.: 1

RE: Serializacia v Medium Trust

ja celkom uspesne pouzivam DataContractSerializer

[Reakcia]


photo
vlko
26. 7. 2010 15:54:16
Body: 35145
Najaktívnejší č.: 1

RE: Serializacia v Medium Trust

Neviem, ako hovorim s DataContractSerializer problemy nie su, ak odekorujes len public premenne, podobne to asi bude aj v tvojom pripade ak deserializujes na privatne premenne moze byt security problem dostat sa tam reflexiou, este teoreticky ta tam get pusti, ale set uz by nemal.

[Reakcia]

photo
marianguru
26. 7. 2010 15:56:59
Body: 745
Najaktívnejší č.: 27

RE: Serializacia v Medium Trust

Vlko, nože hoď kus kodu.

Viac hláv - viac kapusty

[Reakcia]


photo
marianguru
26. 7. 2010 16:37:59
Body: 745
Najaktívnejší č.: 27

RE: Serializacia v Medium Trust

Vlko, zrejme máš na mysli asi takto:

public static string Serialize(List<CoTechnic> list)
{
DataContractSerializer s
= new DataContractSerializer(list.GetType());
StringWriter w
= new StringWriter();
XmlTextWriter xw
= new XmlTextWriter(w);
s.WriteObject(xw, list);
return w.ToString();
}


public static List<CoTechnic> Deserialize(string xml)
{
DataContractSerializer s
= new DataContractSerializer(typeof(List<CoTechnic>));
XmlTextReader r
= new XmlTextReader(new StringReader(xml));
return s.ReadObject(r) as List<CoTechnic>;
}
Ja sa však obávam, že u providera readeri a writeri budú generovať tú istú výnimku. Vyskúšam neskôr, lebo teraz sú na site ludia a dám vedieť.
-Marián

Viac hláv - viac kapusty

[Reakcia]

photo
marianguru
26. 7. 2010 17:18:07
Body: 745
Najaktívnejší č.: 27

RE: Serializacia v Medium Trust

Presne tak - nechodí. Tá istá výnimka.

Viac hláv - viac kapusty

[Reakcia]

photo
vlko
26. 7. 2010 19:31:20
Body: 35145
Najaktívnejší č.: 1

RE: Serializacia v Medium Trust

a neskusis tu pastnut celu vynimku aj so stacktrace? lebo ak to je datacontract s datamember len nad public properties, tak by to malo fungovat, tomu nic nebrani. No ved daj vynimku, kam je permission zakazany

[Reakcia]

photo
marianguru
26. 7. 2010 20:09:52
Body: 745
Najaktívnejší č.: 27

RE: Serializacia v Medium Trust

@vlko, tu je vynimka z DataContractSerializera. Este podotykam, ze u inych dvoch providerov funguju obe varianty - XmlSerializer i DataContractSerializer. Ale tam mam full trust.

Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Security.CodeAccessSecurityEngine.SpecialDemand(PermissionType whatPermission, StackCrawlMark& stackMark) +0
System.Security.CodeAccessPermission.DemandInternal(PermissionType permissionType) +23
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +60
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) +134
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) +13
System.Web.UI.ObjectStateFormatter.SerializeValue(SerializerBinaryWriter writer, Object value) +845




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3607; ASP.NET Version:2.0.50727.3614

Viac hláv - viac kapusty

[Reakcia]

photo
vlko
27. 7. 2010 9:02:36
Body: 35145
Najaktívnejší č.: 1

RE: Serializacia v Medium Trust

Nuz neviem, napada ma uz len, ze v tom objekte co serializujes mas property na nejaky typ, ktory nie je oznaceny serializable/datacontract.

[Reakcia]

photo
marianguru
27. 7. 2010 9:22:04
Body: 745
Najaktívnejší č.: 27

RE: Serializacia v Medium Trust

Ten objekt je deklarovany presne tak ako v úvode tohto threadu.

Viac hláv - viac kapusty

[Reakcia]

photo
vlko
27. 7. 2010 10:13:02
Body: 35145
Najaktívnejší č.: 1

RE: Serializacia v Medium Trust

Hmm, tak ti uz len zostava poziadat o full trust, alebo podporu zo strany hostingu.

[Reakcia]

photo
marianguru
30. 7. 2010 18:24:09
Body: 745
Najaktívnejší č.: 27

RE: Serializacia v Medium Trust

@vlko: Vďaka za spoluprácu. Problém som vyriešil zmenou providera.
BTW: Nový provider (aspone.cz) núka možnosť nastaviť .NET4. Moja app je písaná v .NET3.5. Sú nejaké úskalia, na ktoré je treba dať pozor pri .NET4? Ako je to s performance?

Viac hláv - viac kapusty

[Reakcia]

photo
vlko
30. 7. 2010 20:58:01
Body: 35145
Najaktívnejší č.: 1

RE: Serializacia v Medium Trust

Ak nevyuzivas ziadne s novych vlastnosti .net 4, tak zmysel moc prechadzat nema, ak ale si si ako ja zvykol na optional parametre, vyuzivas data annotation 4, dynamic a podobne veci (ri asp.net zasa vsetky tie nove feature novej verzie, ktora ide len nad .net 4) a k tomu by si rad zjednodusil tvoj config file, tak urcite prechod zmysel ma.

[Reakcia]



Najaktívnejší užívatelia
1. 35145 b. photo vlko
2. 16750 b. photo T
3. 15610 b. photo spigi
4. 6655 b. photo dudok
5. 5705 b. photo slavof
6. 5205 b. photo siro
7. 4745 b. photo duracellko
8. 3800 b. photo Liero
9. 3690 b. photo lubolacko
10. 3625 b. photo jakub