Установка уровня доверия в web.config - PullRequest
6 голосов
/ 30 января 2012

Я не могу отправить электронное письмо через 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, это правильно?

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

Ответы [ 2 ]

7 голосов
/ 30 января 2012

Уровни доверия задокументированы здесь: 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

0 голосов
/ 21 марта 2013

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

 public static void ConfirmMail(string emailTo)

{
    try
    {

        MailMessage message = new MailMessage();
        message.Subject = "Account Registration From 91calls";
        message.From = new MailAddress(Convert.ToString("admin@91calls.com"),"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
    {
    }

}
...