Установка уровня доверия в web.config

Я не могу отправить электронную почту через ASP.NET и отправил электронное письмо своим веб-хостам за помощью, и мне сказали изменить мои настройки безопасности, и мне была отправлена ​​​​ссылка:

http://forums.asp.net/t/1111145.aspx/1

Я прочитал, что там написано, и попытался установить <trust level="Full" originUrl="" /> в web.config, но потом получаю сообщение об ошибке:

This configuration section cannot be used at this path. This happens when the site administrator has locked access to this section using <location allowOverride="false"> from an inherited configuration file.

Я не устанавливал никаких других файлов web.config.

Поэтому я снова спросил веб-хостов и спросил, была ли это настройка сервера, которую я не могу изменить, но ответ, который я получил, был просто:

You'll need to specify a more specific path.

Что прекрасно, но я понятия не имею, что это значит!

Немного покопавшись, мне интересно, нужно ли мне создавать отдельный файл trust, правильно ли это?

Может ли кто-нибудь указать мне правильный способ настроить мой уровень доверия (я понимаю, что «полный», вероятно, также неверен?), поскольку я действительно не понимаю, что я должен делать!


person Jamie Hartnoll    schedule 30.01.2012    source источник


Ответы (2)


Уровни доверия задокументированы здесь: http://msdn.microsoft.com/en-us/library/ie/wyts434y.aspx. На виртуальном хостинге провайдеры блокируют эти настройки, поэтому вы не можете изменить их в файле web.config. Если вы явно просили у своего провайдера разрешить полное доверие вашему приложению, и если они ответили "а?", то вы разговаривали с необразованным человеком - либо запрашивайте эскалацию, либо меняйте хосты. «Пожалуйста, настройте мое приложение с полным доверием» должно быть достаточно ясным. Обратите внимание, что они могут не захотеть этого делать, как только поймут вашу просьбу.

Кроме того, я не могу быть уверен, что для отправки почты требуется полное доверие. Отправка почты предполагает возможность связи с SMTP-сервером, и обычно веб-хосты разрешают доступ только к своим и блокируют все остальное (для предотвращения спама). Вы не сможете уговорить их сделать для вас исключение, но если вы спросите: «Пожалуйста, скажите мне, какой smtp и порт использовать для отправки электронной почты из моего приложения asp.net», они должны предоставить его вам (в противном случае, эскалация или смена хоста). На самом деле вы должны были сначала попросить их помочь вам отправить почту, прежде чем сделать вывод, что этому мешает уровень доверия (теперь я почти уверен, что это не так).

Также прочтите это, пожалуйста: https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem

person Community    schedule 30.01.2012
comment
Спасибо. Итак, вы говорите, что их ответ был еще более бесполезным, чем я думал! Ссылаясь на ваше замечание, что я должен был сначала спросить их, как отправлять почту через их серверы... На самом деле, я это сделал! Я отправил им по электронной почте пример кода, и мне сказали, что его можно использовать. Затем я столкнулся с проблемой, которая вдохновила меня написать здесь. Я снова напишу им письмо с просьбой дать более полный ответ. - person Jamie Hartnoll; 31.01.2012
comment
Я почти уверен, что у меня было приложение на виртуальном хостинге с частичным доверием для отправки почты. Хосты вряд ли окажут вам полное доверие, потому что это представляет риск для их сервера и других приложений, работающих на нем; как правило, они используют эту возможность для рекламы своих выделенных серверов. Используйте классы .NET для отправки электронной почты (или, по крайней мере, для проверки ее работы), прежде чем вы начнете использовать некоторые сторонние библиотеки почтовых программ (вы можете найти там пример кода; это занимает всего несколько строк + несколько изменений web.config). Затем, если отправка почты не удалась, вставьте сюда информацию об исключении; и мы что-нибудь придумаем. - person ; 31.01.2012
comment
Да, большая часть виртуального хостинга не поддерживает полное доверие, поэтому вам нужно уточнить это у вашего текущего провайдера. Но если вам действительно нужен хостинг с полным доверием, я могу назвать одно имя HostForLife.eu. Вы можете найти их сайт на сайте Microsoft. :) - person ; 31.01.2012
comment
Арх! Теперь я разобрался, мне нужно использовать порт 25. west-wind.com/weblog/posts/2008/Jan/18/ с какой стати они не могли сказать мне об этом в первую очередь, когда я отправил им код для проверки !! :@ - person Jamie Hartnoll; 31.01.2012
comment
Да, это так! Просто жаль, что они не упомянули об этом до того, как я начал бездельничать!! Доверие по умолчанию, по-видимому, среднее, и с использованием порта 25 все работает! - person Jamie Hartnoll; 02.02.2012

Попробуй это:

 public static void ConfirmMail(string emailTo)

{
    try
    {

        MailMessage message = new MailMessage();
        message.Subject = "Account Registration From 91calls";
        message.From = new MailAddress(Convert.ToString("[email protected]"),"Admin");
        message.To.Add(emailTo);
        message.BodyEncoding = System.Text.Encoding.UTF8;
        StringBuilder sb = new StringBuilder();
        sb.Append("<html>");
        sb.Append("<Body>");
        sb.Append("<table cellpadding='0' cellspacing='0' width='100%' border='0'>");
        sb.Append("<tr><td align='center'><table cellpadding='0' cellspacing='0' width='100%' border='0'>");
       // sb.Append("<tr><td align='left'><asp:Image ID='imgLogo' runat='server' ImageUrl='http://supervau.w01.winhost.com/images/logo.png' />");
        sb.Append("</td></tr><tr><td>Hi, <br></td></tr><tr><td align='left'>You are successfylly resgistered with 91 calls.<br>");
        sb.Append("<br>Thank you for using, : http://www.91calls.com<br /><br>For questions or concerns regarding your account, please visit : http://www.91calls.com");
        sb.Append("</td></tr></table></td></tr></table>");
        sb.Append("</Body>");
        sb.Append("</html>");
        message.Body = sb.ToString();
        message.IsBodyHtml = true;
        SmtpClient client = new SmtpClient();
        client.Send(message);


    }
    catch
    {
    }

}
person ASUMPTA    schedule 21.03.2013