идея заключается в том, что приложение, над которым я работаю, находится в обратном направлении - когда я ожидаю, что они в одном месте через файл конфигурации, например, appsettings.json, позволяют им изменять информацию о доступе в нем.Так же имеется возможность подключения строки к базе данных.Я делаю это в файле appsetings:
"CORSConfiguration": {
"WithOrigin": "",
"WithMethod": "*",
"WithHeader": "*",
"WithCredentials": "*"
},
В WithOrigin thay будет вставлять запрошенные ресурсы, методы WithMethod и т.д. ... Затем я создаю интерфейс:
public interface ICORSConfiguration
{
List<string> WithOrigin { get; set; }
List<string> WithMethod { get; set; }
List<string> WithHeader { get; set; }
List<string> WithCredentials { get; set; }
}
Затем я создаю класс, которыйунаследуйте этот интерфейс:
public class CORSConfiguration: ICORSConfiguration
{
public List<string> WithOrigin { get; set; }
public List<string> WithMethod { get; set; }
public List<string> WithHeader { get; set; }
public List<string> WithCredentials { get; set; }
}
Есть ли у вас какие-либо советы о том, как это сделать, каковы возможности здесь ...?Как мне установить эти элементы управления в контроллере ... Я не знаю, как это сделать.Мне это нужно для приложения REST, которое имеет только метод Mail для отправки электронной почты.Метод выглядит так:
[HttpPost("send")]
public void Send(EmailMessage emailMessage)
{
var message = new MimeMessage();
message.From.Add(new MailboxAddress(emailMessage.Email, emailMessage.Name));
message.To.AddRange(emailMessage.To.Select(c => new MailboxAddress(c.Email)));
message.Cc.AddRange(emailMessage.Cc.Select(c => new MailboxAddress(c.Email)));
message.Bcc.AddRange(emailMessage.Bcc.Select(c => new MailboxAddress(c.Email)));
message.Subject = emailMessage.Subject;
message.Body = new TextPart(TextFormat.Html)
{
Text = emailMessage.Message
};
CorsService corsService = new CorsService();
corsService.setAllowedOrigins(new HashSet(Array.("*")));
//_corsConfiguration.WithHeader
//_corsConfiguration.WithMethod;
using (var emailClient = new MailKit.Net.Smtp.SmtpClient())
{
//emailClient.Connect(_emailConfiguration.SmtpServer, _emailConfiguration.SmtpPort, true);
emailClient.Connect("smtp.gmail.com", 465);
//emailClient.Connect("smtp.gmail.com", 587, MailKit.Security.SecureSocketOptions.SslOnConnect);
emailClient.AuthenticationMechanisms.Remove("XOAUTH2");
emailClient.Authenticate(_emailConfiguration.SmtpUsername, _emailConfiguration.SmtpPassword);
//emailClient.
emailClient.Send(message);
emailClient.Disconnect(true);
}
}
С этим CorsServices я пытаюсь что-то, что не работает ...