在请求之前更改全局asp.net WebApiConfig

时间:2017-12-13 13:22:32

标签: c# asp.net asp.net-web-api httpconfiguration

我有一个C#Web-API,在Application_Start()我配置路由,格式化程序和cors域。 我的问题是,基于请求源,我必须向cors-domains添加更多域。 (例如,如果请求来自123.com,则有来自asd.com的mor cors域名) 我想在Application_BeginRequest中添加额外的cors-domains:

    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域?

0 个答案:

没有答案