Hi,
A very small utility app I have written throws an exception "Request for the
permission of type 'System.Net.Mail.S
mtpPermission, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c56
1934e089' failed."
Now the .exe is on a 'D:' share in a folder.
If I run the .EXE using a UNC path ie
"\\coventry\data\castleview\utilities\smtp.exe
"jon.smith@castleins.co.uk" "test" "test""
it throws the error.
If I run the app as
"D:\castleview\utilities\smtp.exe "jon.smith@castleins.co.uk" "test"
"test""
I dont get the error....
Can someone point me in the right direction to understand what is causing
this please ?
Many thanks,
Full code listed below !
Jon.
class Program
{
static void Main(string[] args)
{
try
{
const string sSMTPServer = "172.20.50.25";
if (args.Length == 4 || args.Length == 5)
{
string sFromAddress = args[0];
string sToAddress = args[1];
string sSubject = args[2];
string sBody = args[3];
string sAttachmentFile = string.Empty;
if (args.Length == 5)
sAttachmentFile = args[4];
if (sFromAddress.Contains(".") == true && sFromAddress.Contains("@") == true
&& sToAddress.Contains(".") == true && sToAddress.Contains("@") == true)
{
MailMessage message = new MailMessage(sFromAddress, sToAddress, sSubject,
sBody);
if (sAttachmentFile != String.Empty)
{
Attachment data = new Attachment(args[4]);
message.Attachments.Add(data);
}
SmtpClient client = new SmtpClient(sSMTPServer);
try
{
client.Credentials = CredentialCache.DefaultNetworkCredentials;
}
catch (Exception excpt)
{
Console.WriteLine("An error occurred initialising the mail client. " +
excpt.Message + "\n");
}
try
{
client.Send(message);
}
catch (Exception excpt)
{
Console.WriteLine("An error occurred sending the mail. " + excpt.Message +
"\n");
}
}
else
{
Console.WriteLine("Parameter error." + "\n");
ShowParameters();
}
}
else
{
ShowParameters();
}
}
catch (Exception excpt)
{
Console.WriteLine("A horrible error occurred. " + excpt.Message + "\n");
}
}
private static void ShowParameters()
{
Console.WriteLine("SMTP - Version 1.0");
Console.WriteLine("USAGE:");
Console.WriteLine("smtp [From Email Address] | [To Email Address] |
[Subject] | [Body Text] | [Attachment Filename]");
}
}
Request for the permission of type 'System.Net.Mail.S
mtpPermission, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c56
1934e089' failed.
Petar Repac - 04 Oct 2006 21:42 GMT
Hi, Bishman,
take a look at Code Access Security (CAS)
for example:
1) http://msdn2.microsoft.com/en-us/library/930b76w0.aspx
2) http://www.codeproject.com/dotnet/UB_CAS_NET.asp
When you run your app from a UNC path .NET framework thinks about it
as loading it from a share and default CAS settings don't permit running
code from shares.
Regards,
Petar Repac
> Hi,
>
[quoted text clipped - 164 lines]
> PublicKeyToken=b77a5c56
> 1934e089' failed.