Giraffe.Antiforgery 1.0.0

dotnet add package Giraffe.Antiforgery --version 1.0.0                
NuGet\Install-Package Giraffe.Antiforgery -Version 1.0.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Giraffe.Antiforgery" Version="1.0.0" />                
对于支持 PackageReference 的项目,请将此 XML 节拷贝到项目文件中以便引用此包。
paket add Giraffe.Antiforgery --version 1.0.0                
#r "nuget: Giraffe.Antiforgery, 1.0.0"                
#r 指令可用于 F#Interactive 和 Polyglot Notebooks。请将此内容拷贝到交互式工具或脚本代码中以便引用该包。
// Install Giraffe.Antiforgery as a Cake Addin
#addin nuget:?package=Giraffe.Antiforgery&version=1.0.0

// Install Giraffe.Antiforgery as a Cake Tool
#tool nuget:?package=Giraffe.Antiforgery&version=1.0.0                

Giraffe.Antiforgery

提供使用 Microsoft.AspNetCore.Antiforgery 包来生成和验证 CSRF 令牌的支持。

入门教程

open Giraffe.Antiforgery
open Giraffe.GiraffeViewEngine.Antiforgery

// rest of code

let formView (token : AntiforgeryTokenSet) = 
    html [] [
        body [] [
                form [ _method "post" ] [
                        antiforgeryInput token
                        input [ _type "submit"; _value "Submit" ]
                    ]                                
            ]
    ]
	
let csrfHandler (token : AntiforgeryTokenSet) : HttpHandler = 
    fun (next: HttpFunc) (ctx : HttpContext) ->                                
        htmlView (formView token) next ctx

let webApp =
    choose [
        GET >=> choose [
                // using htmlView helper
                route "/token" >=> choose [ 
                        GET  >=> csrfHtmlView formView
                        POST >=> requiresCsrfToken (text "intruder!") >=> text "oh hi there ;)" 
                    ]
                // manual token handler
                route "/token" >=> choose [ 
                    GET  >=> csrfTokenizer csrfHandler
                    POST >=> requiresCsrfToken (text "intruder!") >=> text "oh hi there ;)" 
                ]
                route "/" >=> text "hello" 
            ]
        RequestErrors.NOT_FOUND "Not Found"
    ]

// rest of code

处理程序

csrfTokenizer

使用 Microsoft.AspNetCore.Antiforgery 包生成 CSRF 令牌,并将其传递给提供的处理程序。

csrfTokenizer: (handler : AntiforgeryTokenSet -> HttpHandler) -> (next: HttpFunc) -> (ctx : HttpContext) -> HttpFuncResult

csrfHtmlView

将新生成的 CSRF 令牌注入到 Giraffe.GiraffeViewEngine.XmlNode 中。可认为这是增强版的 htmlView

csrfHtmlView: (view : AntiforgeryTokenSet -> XmlNode) -> (next: HttpFunc) -> (ctx : HttpContext) -> HttpFuncResult

requiresCsrfToken

检查 CSRF 令牌的存在和有效性,并在失败时调用 invalidTokenHandler。类似于 requiresAuthentication

requiresCsrfToken: (invalidTokenHandler : HttpHandler) -> (next: HttpFunc) -> (ctx : HttpContext) -> HttpFuncResult

HTML

antiforgeryInput

使用 Giraffe.GiraffeViewEngine 生成隐藏的 CSRF 输入。

antiforgeryInput (token : AntiforgeryTokenSet) -> XmlNode

需要 open Giraffe.GiraffeViewEngine.Antiforgery

产品 兼容的以及进一步的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(包含包中)
了解有关 目标框架.NET Standard 的更多信息。

NuGet 包

此包未被任何 NuGet 包使用。

GitHub 仓库

此包未使用任何流行的 GitHub 仓库。

版本 下载 最后更新
1.0.0 1,035 3/26/2020