小编zor*_*ran的帖子

为什么在 ASP.NET Core 中我们需要 OperationAuthorizationRequirement 来进行基于资源的授权?

我正在 learn.microsoft.com 上阅读ASP.NET Core 中的基于资源的授权,我对检查文档作者所需的复杂性感到困惑。

在此示例中,我们需要创建OperationsDocumentAuthorizationCrudHandler类,在Startup中注册 DI ,调用并等待AuthorizeAsync,然后执行检查。

我们无需在 4 个文件中编写 30 行代码,只需一行代码即可完成所有操作

if (User.Identity?.Name == Document.Author) return Page();
Run Code Online (Sandbox Code Playgroud)

如果我们希望能够重用它,我们可以将其提取到一个方法中,但这仍然是一个简单得多的解决方案。

一线解决方案有什么问题或者我遗漏了什么吗?

编辑:

为了澄清我的问题 - 有没有具体的例子为什么最好实现 AuthorizationHandler 和 OperationAuthorizationRequirement 来进行资源授权而不是进行简单的检查?我真的很好奇有什么好处,因为我更喜欢简单的解决方案,但我担心将来会遇到 AuthorizationHandler/OperationAuthorizationRequirement 已经涵盖的某些情况。

c# asp.net-core

7
推荐指数
1
解决办法
1451
查看次数

如何从 Google Cloud Platform 上的负载均衡器中删除 SSL 证书?

我们在 GCP 上有 3 个负载均衡器:开发、暂存和生产。

我们的 SSL 证书已过期,因此是时候更换它了。我去了:

网络服务 > 负载平衡 > 负载平衡器 > 编辑 > 前端配置

并添加了新证书。它非常适合舞台和制作。

Dev 工作了 5-10 分钟,之后旧证书会自动重新应用。我决定删除旧证书(如果不存在,则无法应用)。它工作了 10 分钟,奇迹般地 GCP 恢复了删除的证书并将其重新应用到开发人员。

尝试了几次,结果相同。

这是一个错误,还是我错过了什么?

ssl load-balancing ssl-certificate google-cloud-platform

4
推荐指数
2
解决办法
3370
查看次数

如何裁剪和调整JavaFX Image的大小?

我试图在JavaFX画布上显示非常大的图像.单张图像的分辨率为11980x8365.每个图像都有一个相应的世界文件,我可以使用它来正确定位图像.我的画布大小是800x600.有时候我需要在画布上写整个图像,有时只是它的一部分.

这是我到目前为止所做的:

  • 将完整大小的图像从文件加载到Image对象中.
  • 计算要显示的图像部分并计算比例参数,以正确地将其放入800x600画布中.

所以基本上我想使用GraphicsContext.drawImage(...) - 将给定图像的当前源矩形绘制到Canvas的给定目标矩形.

对于这种方法,我正确计算了所有参数.问题是有时Image大于2048x2048,并且由于某种原因,JavaFX尝试使用GPU将此图像直接绘制到画布上(如果我理解正确的话).那是我得到例外的时候:

java.lang.NullPointerException
    at com.sun.prism.sw.SWGraphics.drawTexture(SWGraphics.java:686) at com.sun.prism.sw.SWGraphics.drawTexture(SWGraphics.java:686)
    at com.sun.prism.sw.SWGraphics.drawTexture(SWGraphics.java:665)
    at com.sun.prism.sw.SWGraphics.drawTexture(SWGraphics.java:648)
    at com.sun.javafx.sg.prism.NGCanvas.handleRenderOp(NGCanvas.java:1228)
    at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:997)
    at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:578)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
    at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2282)
    at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2176)
    at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2202)
    at com.sun.javafx.sg.prism.CacheFilter.impl_renderNodeToCache(CacheFilter.java:655)
    at com.sun.javafx.sg.prism.CacheFilter.render(CacheFilter.java:561)
    at com.sun.javafx.sg.prism.NGNode.renderCached(NGNode.java:2346)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2034)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
    at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2282)
    at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2176) …
Run Code Online (Sandbox Code Playgroud)

canvas image javafx-2 javafx-8

3
推荐指数
1
解决办法
7198
查看次数

如何修复 Swagger 中的混合内容错误?

我正在 Gunicorn 上运行 Django RF 后端应用程序。当尝试从 Swagger 获取数据时,我收到“TypeError:无法获取”在控制台中报告此错误:

混合内容:“https://****.com/swagger/”页面是通过 HTTPS 加载的,但请求了不安全的资源“http://****.com/v2/products/”。该请求已被阻止;内容必须通过 HTTPS 提供。

我尝试了我发现并能想到的所有内容,包括:

secure_scheme_headers = {
    'X-FORWARDED-PROTOCOL': 'ssl',
    'X-FORWARDED-PROTO': 'https',
    'X-FORWARDED-SSL': 'on'}
Run Code Online (Sandbox Code Playgroud)

到古尼康

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
Run Code Online (Sandbox Code Playgroud)

到 Django 设置。

但没有任何帮助。

Swagger for Django:drf-yasg==1.12.1

django gunicorn swagger

2
推荐指数
1
解决办法
3085
查看次数