F# 保护WebSharper远程调用的安全
引用WebSharper 2.5 alpah文档,远程处理组件假定: RPC可调用方法可以安全地由未经身份验证的客户端从web调用F# 保护WebSharper远程调用的安全,f#,websharper,F#,Websharper,引用WebSharper 2.5 alpah文档,远程处理组件假定: RPC可调用方法可以安全地由未经身份验证的客户端从web调用 是否有办法保护远程调用,以便只能从经过身份验证的客户端调用远程调用?WebSharper网站中的一个示例是一个聊天应用程序,它提供了一个登录方法,返回身份验证令牌,然后调用其他功能需要该方法: [<Rpc>] let Login (user: string) : Option<Auth.Token> = let s = State.G
是否有办法保护远程调用,以便只能从经过身份验证的客户端调用远程调用?WebSharper网站中的一个示例是一个聊天应用程序,它提供了一个登录方法,返回身份验证令牌,然后调用其他功能需要该方法:
[<Rpc>]
let Login (user: string) : Option<Auth.Token> =
let s = State.Get()
if s.Users.ContainsKey user then
None
else
// (snip)
user |> Auth.Generate |> Some
[<Rpc>]
let Poll (auth: Auth.Token) (time: int) =
// (snip)
[]
让我们登录(用户:string):选项我自己刚刚在玩这个。事实证明,如果使用表单身份验证,则可以从RPC方法内部读取当前的HTTPContext,以便执行以下操作:
[<Rpc>]
let protectedMethod () =
match IntelliFactory.WebSharper.Sitelets.UserSession.GetLoggedInUser() with
| Some(username) ->
// User is authenticated... do stuff
()
| None -> failwith "Authentication failed"
[]
让protectedMethod()=
将IntelliFactory.WebShapper.Sitelets.UserSession.GetLoggedInUser()与
|一些(用户名)->
//用户已通过身份验证。。。做事
()
|无->失败,带有“身份验证失败”
当然,传递身份验证令牌。