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
NuGet 团队不提供对此客户端的支持。请联系其 管理员 以获取支持。
#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
NuGet 团队不提供对此客户端的支持。请联系其 管理员 以获取支持。
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 已计算。 |
-
.NETStandard 2.0
- FSharp.Core (>= 4.7.0)
- Giraffe (>= 4.0.1)
- Microsoft.AspNetCore.Antiforgery (>= 2.2.0)
NuGet 包
此包未被任何 NuGet 包使用。
GitHub 仓库
此包未使用任何流行的 GitHub 仓库。
版本 | 下载 | 最后更新 |
---|---|---|
1.0.0 | 1,035 | 3/26/2020 |