找回密码
 立即注册

QQ登录

只需一步,快速开始

Popeye

注册会员

5

主题

26

帖子

65

积分

注册会员

积分
65
Popeye
注册会员   /  发表于:2021-8-3 11:10  /   查看:3687  /  回复:9
1金币
本帖最后由 Crystal.Li 于 2021-8-3 13:39 编辑

采用的 ActiveReports 15.1.7 版本,.NET 5.0,在 Web Host 项目的 Startup 类中,有如下代码:
  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3.     services.AddCors(options => options.AddDefaultPolicy(builder =>
  4.         builder
  5.         .AllowAnyHeader()
  6.         .AllowAnyMethod()
  7.         .AllowAnyOrigin()));

  8.     services.AddReporting();

  9.     services.AddControllers(options =>
  10.     {
  11.     });
  12. }

  13. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  14. {
  15.     if(env.IsDevelopment())
  16.         app.UseDeveloperExceptionPage();

  17.     /* 开启 Cors 支持 */
  18.     app.UseCors();
  19.     app.UseHttpMethodOverride();
  20.     app.UseRouting();
  21.     app.UseAuthentication();
  22.     app.UseAuthorization();
  23.     app.UseStaticFiles();

  24.     /* using the ActiveReports */
  25.     app.UseReporting(settings => {});

  26.     app.UseEndpoints(endpoints =>
  27.     {
  28.         endpoints.MapControllers();
  29.     });
  30. }
复制代码

如上代码所示,明明已经开启了 Cors 功能,可是在浏览器中访问报表时仍然发生了 CORS 跨域问题。请问,这个问题如何解决?

最佳答案

查看完整内容

使用JSviewer独立部署一个报表服务,如何解决跨域的问题 https://gcdn.grapecity.com.cn/fo ... 78237&fromuid=59070 (出处: 葡萄城产品技术社区) https://gcdn.grapecity.com.cn/forum.php?mod=redirect&goto=findpost&ptid=91247&pid=374717&fromuid=59070

9 个回复

正序浏览
Popeye
注册会员   /  发表于:2021-8-3 23:05:18
来自 3#
查看了微软 ASP.NET 5.0 的源码,发现只要将 Startup 类中的 ConfigureServices 方法中设置 Cors 选项的代码改成如下:

因为默认不允许 AllowAnyOrigin 与 AllowCredentials 方法并用,故用 SetIsOriginAllowed(p => true) 替换为 AllowAnyOrigin 方法,虽然基于安全性而言,这是不被鼓励的。



  1. services.AddCors(options => options.AddDefaultPolicy(builder =>
  2.     builder
  3.         .AllowAnyHeader()
  4.         .AllowAnyMethod()
  5.         .AllowCredentials()
  6.         .SetIsOriginAllowed(origin => true)));
复制代码
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-8-16 09:25:28
10#
Popeye 发表于 2021-8-14 16:01
遇到新问题了,麻烦版主帮我看看吧:

好的   我们在新的帖子中帮您处理
回复 使用道具 举报
Popeye
注册会员   /  发表于:2021-8-14 16:01:26
9#
Crystal.Li 发表于 2021-8-5 17:53
好的,我们这边先看一下,目前还没有现成的。

遇到新问题了,麻烦版主帮我看看吧:


https://gcdn.grapecity.com.cn/fo ... mp;extra=#pid412931
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-8-5 17:53:47
8#
Popeye 发表于 2021-8-5 17:15
呵呵,好的。另外,帮我看看这个帖子的最后回帖吧:
https://gcdn.grapecity.com.cn/showtopic-80466-1- ...

好的,我们这边先看一下,目前还没有现成的。
回复 使用道具 举报
Popeye
注册会员   /  发表于:2021-8-5 17:15:55
7#
Crystal.Li 发表于 2021-8-5 17:03
那您可以指定特定的几个源允许跨域

呵呵,好的。另外,帮我看看这个帖子的最后回帖吧:
https://gcdn.grapecity.com.cn/showtopic-80466-1-4.html
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-8-5 17:03:58
6#
那您可以指定特定的几个源允许跨域
回复 使用道具 举报
Popeye
注册会员   /  发表于:2021-8-5 16:49:58
5#
Crystal.Li 发表于 2021-8-4 09:33
您是想允许所有源跨域吗?这样还是有安全问题的,建议可以指定特定的几个源允许跨域~

是的,允许所有Origin确实有安全风险。
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-8-4 09:33:17
4#
Popeye 发表于 2021-8-3 23:05
查看了微软 ASP.NET 5.0 的源码,发现只要将 Startup 类中的 ConfigureServices 方法中设置 Cors 选项的代 ...

您是想允许所有源跨域吗?这样还是有安全问题的,建议可以指定特定的几个源允许跨域~
回复 使用道具 举报
最佳答案
最佳答案
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-8-3 11:10:42
来自 2#
本帖最后由 Crystal.Li 于 2021-8-3 13:43 编辑

使用JSviewer独立部署一个报表服务,如何解决跨域的问题
https://gcdn.grapecity.com.cn/fo ... 78237&fromuid=59070
(出处: 葡萄城产品技术社区)

https://gcdn.grapecity.com.cn/fo ... 7&fromuid=59070
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部