gpt4 book ai didi

c# - CORS Asp.Net Core 通过 appsetting.json

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:53 25 4
gpt4 key购买 nike

我的想法是,我正在后台工作的应用程序 - 当我转发到前端时,它们通过配置文件(例如 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; }
}

然后我创建继承这个接口(interface)的类:

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; }
}

你对如何做到这一点有什么建议吗,这里的可能性是什么......?我如何在 Controller 中安装这些控件......我不知道如何完成这个。对于只有 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,我尝试了一些东西,但它不起作用......

最佳答案

需要在服务器上启用 Cors。因此,如果您调用 x webservice,则该服务必须启用 cors 支持。您可以在 Controller 标签上执行此操作,或者更好地在启动类上执行此操作。有关详细信息,请参阅此处。

您不需要创建类和应用设置值。

https://learn.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.2

关于c# - CORS Asp.Net Core 通过 appsetting.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54901554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com