Forums Neueste Beiträge
 

Fehler beim senden einer eMail System.Security.SecurityException

20/05/2009 - 11:26 von Jo Michael | Report spam
Hallo,
ich hab ein Webpart in dem ich eine eMail verschicken möchte.
Beim senden wird aber folgende Fehlermeldung generiert:

System.Security.SecurityException: Fehler bei der Anforderung des
Berechtigungstyps "System.Net.Mail.SmtpPermission, System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089". bei
System.Security.CodeAccessSecurityEngine.Check(Object demand,
StackCrawlMark& stackMark, Boolean isPermSet) bei
System.Security.CodeAccessPermission.Demand() bei
System.Net.Mail.SmtpClient.Initialize() bei
System.Net.Mail.SmtpClient..ctor(String host) bei
Kennwort_Formular.WebPart1.SendeMail() Die Aktion, bei der ein Fehler
aufgetreten ist: Demand Der Typ der ersten Berechtigung, bei der ein Fehler
aufgetreten ist: System.Net.Mail.SmtpPermission Die Zone der Assembly, bei
der ein Fehler aufgetreten ist: MyComputer


Also soweit ich herausgefunden habe muss ich die Berechtigung meines
webparts àndern.
Über google find ich zwar viel darüber aber irgendwie blick ich da nicht
durch.
Muß ich meiner Anwendungen einen Strongname verpassen und dann signieren?
Wenn ja, wie geht das?
Wo muß ich diese Sicherheitsdingsbums eintragen?:
Web.config der Anwendung? machine.config vom Framework?
AssemblyInfo.cs?
Eigentlich nutze ich .Net 3.5, gibts da keine machine.config? Nehm ich die
vom 2.0?

Gibts es nicht irgendwo eine Schritt für Schritt Anleitung wie man das
macht?

Mein Webpart soll in einem Sharepoint2007 laufen, aber ich denke das Problem
ist jetzt nicht Sharepoint spezifisch, sondern eher .Net, oder?
Ich nutze VS 2008 mit Sharepoint-Webpart als Projekttyp und Framework 3.5.


Hier noch der Codeteil...falls relevant:

SmtpClient MailClient = new SmtpClient("srv-mail");
MailClient.Credentials = CredentialCache.DefaultNetworkCredentials;
MailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
MailMessage message = new MailMessage();
message.From = new MailAddress("Sharepoint@mydomain.de");
message.To.Add("ZumAdmin@mydomain.de");
message.Subject = "Irgendein Betreff";
message.IsBodyHtml = false;
message.Body = " Irgendein Inhalt." ;
message.BodyEncoding = System.Text.Encoding.UTF8;
MailClient.Send(message);

danke schonmal für jeden Tip,
gruss,
Jo
 

Lesen sie die antworten

#1 Karsten Samaschke
21/05/2009 - 08:04 | Warnen spam
Am 20.05.2009 11:26 Uhr, schrieb Jo Michael:

Also soweit ich herausgefunden habe muss ich die Berechtigung meines
webparts àndern.



Nein, Du musst die Zonensicherheitseinstellung bzw. die Permissions für
die Zone àndern. Das machst Du in der Systemverwaltung mit der .NET
Framework 2.0 Konfiguration. Oder Du rufst die mscorcfg.msc hàndisch
auf. Oder Du benutzt caspol.exe.

Oder Du legst eine eigene Konfiguration für die spezifische Applikation
/ den Webpart an und weist dort ein eigenes Permission-Set zu. Die
Herkunft des Webparts kannst Du dabei relativ frei definieren und so
dafür sorgen, dass die Einstellungen für dieses Webpart oder die
Applikation spezifisch sind und Du nicht irrtümlich allen
.NET-Applikationen alles erlaubst.

Über google find ich zwar viel darüber aber irgendwie blick ich da nicht
durch.



Hast Du nach "Code Access Security" gesucht?

Muß ich meiner Anwendungen einen Strongname verpassen und dann
signieren? Wenn ja, wie geht das?



Kann sein. Hast Du nach "Strongname Assembly" gesucht?


Mit freundlichen Gruessen / Best regards,

Karsten Samaschke
IT-Consulting, IT-Training, IT-Development
Web: http://www.ksamaschke.de
Blog: http://www.karsan.de
Family: http://www.familyblogger.de
Community: http://www.aspnetzone.de

Sent via MacBook Pro / OS X 10.5 (Leopard)

Ähnliche fragen