来吧学学.Net Core之登录认证与跨域资源使用 .Net Core跨域访问需要登录认证的资源

学习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]特性出现的问题
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