如何解决选择不使用授权的AuthenticationScheme
身份验证=谁在打电话?
授权=他们可以这样做吗?
我在代码中多次致电AddJwtBearer
。它创建了我支持的几个不同的JWT场景。
我还设置了options.DefaultAuthenticateScheme = "MyAuthenticationScheme"
。
当调用未加[Authorize]
标记的控制器方法时,它将把User.Identity
对象设置为JWT中在调用中设置的数据。 AddJwtBearer
代表"MyAuthenticationScheme"
。
但是,如果该JWT不存在,则调用将继续进行,并且User.Identity
对象中仅包含空值。那对我想要的东西很棒。
我希望有一种方法可以在我的控制器中向我的方法添加一个属性,该属性使我无需使用[Authorize]
即可切换AuthenticationScheme。
我的理由是,我只是尝试设置“谁在呼叫”(身份验证)。现在,我有另一个系统负责“您可以做什么”(授权)。
在每个控制器方法的基础上,是否有一种方法可以切换AuthenticationSchemes而不必使用[Authorize]
属性?
类似[Authentication (Scheme = "MyOtherAuthenticationScheme")]
解决方法
您应该可以将<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:map="http://marklogic.com/xdmp/map"
exclude-result-prefixes="map"
version="2.0">
<xsl:variable name="my-map" as="map:map" select="map:map()" />
<xsl:template match="/">
<xsl:sequence select="map:put($my-map,'a','b')"/>
<xsl:value-of select="map:get($my-map,'a')"/>
</xsl:template>
</xsl:stylesheet>
属性和AllowAnonymous
一起添加。
Authorize
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。