我有一个 C# Web-API,在 Application_Start() 我配置了路由、格式化程序和 cors 域。我的问题是,基于请求来源,我必须向 cors-domains 添加更多域。(例如,如果请求来自 123.com,则 mor cors 域比来自 asd.com 的域)我想在 Application_BeginRequest 中添加额外的 cors 域:
void Application_BeginRequest(Object source, EventArgs e)
{
HttpApplication app = (HttpApplication)source;
HttpContext context = app.Context;
// Attempt to peform first request initialization
FirstRequestInitialization.Initialize(context);
var corsDomains = Settings.Default.CORS_Domains;
if (originheader.equals("somevalue"))
{
corsDomains += ", " + Settings.Default.CORS_SomeValue_Domains;
}
var cors = new EnableCorsAttribute(corsDomains, "*", "*")
{
SupportsCredentials = true
};
HttpConfiguration config = //where to get config?
config.EnableCors(cors);
}
有没有办法检索和更改配置?非常感谢您的帮助。
编辑:也许一个例子可以澄清我需要什么:
请求来自 asdf.org:cors-domains 应该是:base.com、home.org、jkl.net(但不是 qwer.com)
请求来自 test.com:cors-domains 应该是:base.com、home.org、qwer.com(但不是 jkl.net)
在 Settings.Default 中,我有多个列表:
CORS_BASE:base.com、home.org
CORS_ASDF: jkl.net
CORS_TEST:qwer.com
如何根据请求的来源将附加列表添加到 cors 域?