学习core登录认证与跨域资源共享是越不过的砍,所以我在学习中同样也遇到啦这两个问题,今天我们就用示例来演示下使用下这2个技术点吧.
本篇主要内容如下:
1、展示一个登录认证的简单示例
2、跨域资源访问
3、跨域获取登录认证的用户信息
public void ConfigureServices(IServiceCollection services) { //services.AddAuthorization(); // Add framework services. services.AddMvc(); services.AddCors(options => options.AddPolicy("AllowSameDomain", builder => builder.WithOrigins("http://a.local.com:50307", "http://b.local.com:63455"))); }
注意此方法只能解决各种GET/POST等请求的跨域问题,不能解决[Authorize]特性出现的问题
.Net Core跨域访问需要登录认证的资源
services.AddCors(options => options.AddPolicy("AllowSameDomain", builder => builder.WithOrigins("http://a.local.com:50307", "http://b.local.com:63455").AllowCredentials()));
重点是
.AllowCredentials()
加上这个才能返回[Authorize]特性出现的未授权出现的跨域问题
若要允许所有请求响应标头,请调用AllowAnyHeader
方法
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
builder.WithOrigins("http://www.test.com")
.AllowAnyHeader();
});
});
//user code ……
}
此问题解决!
参考
https://www.cnblogs.com/knowledgesea/p/7084419.html
https://www.jianshu.com/p/c8ed4bb54351