【发布时间】:2019-07-20 22:38:53
【问题描述】:
这个想法是我正在使用的应用程序 - 当我转发到通过配置文件(例如 appsettings.json)将它们放在一个地方时,它们允许他们更改其中的访问信息。具有将字符串连接到数据库的能力。 我在 appsettings 文件中做这个:
"CORSConfiguration": {
"WithOrigin": "",
"WithMethod": "*",
"WithHeader": "*",
"WithCredentials": "*"
},
在 WithOrigin 中将插入请求的资源、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; }
}
你对如何做到这一点有什么建议吗?这里有什么可能性......? 我如何在控制器中安装这些控件......我不知道如何完成这个。 对于只有 Mail 方法来发送电子邮件的 REST 应用程序,我需要这个。 方法如下:
[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,我尝试了一些东西,但它不起作用......
【问题讨论】:
标签: c# asp.net-web-api cors