![](/img/trans.png)
[英]ASP.NET Core - IOptions per tenant, appsetting.json per tenant or Vault
[英]CORS Asp.Net Core through the appsetting.json
这个想法是我正在使用的应用程序-当我向前通过配置文件(例如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; }
}
您对如何执行此操作有任何建议吗?这里有什么可能...? 我如何在控制器中安装这些控件...我不知道如何完成此操作。 对于仅具有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);
}
}
借助此CorsService,我尝试了一些不起作用的方法...
需要在服务器上启用Cors。 因此,如果您致电x webservice,则该服务必须启用cors支持。 您可以在controller lebel上执行此操作,也可以在启动类上执行此操作。 有关更多详细信息,请参见此处。
您无需创建类和应用设置值。
https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.