跨源请求WebApi

时间:2017-07-25 14:31:01

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

我正在阅读有关安全性的https://docs.microsoft.com/en-us/aspnet....,以阻止对其他域的AJAX请求,让我想知道,如果启用此功能,我可以从我的Android客户端发出请求吗? Cu'z似乎在该域之外的任何东西都无法请求。是吗?谢谢!

会是这样的:

context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
        using (IUserRepository _repository = new UserRepository(new Data.DataContexts.OAuthServerDataContext()))
        {
            var user = _repository.Authenticate(context.UserName, context.Password);

            if (user == null)
            {
                context.SetError("invalid_grant", "The user name or password is incorrect.");
                return;
            }
        }

1 个答案:

答案 0 :(得分:1)

如果您从其他发出请求,则需要设置Access-Control-Allow-Origin标头。如果您不担心安全问题,可以使用*,但最好只指定您知道需要访问的域名。

非基于浏览器的客户端可能不一定发送Origin标头(例如Postman),在这种情况下,您可能不必担心设置CORS。

您链接的文档是一个良好的开端。如果您想要全局设置访问而不是基于每个控制器,This post提供了一个很好的基本示例。