首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保护WebSharper远程调用

保护WebSharper远程调用
EN

Stack Overflow用户
提问于 2013-10-13 17:04:28
回答 2查看 591关注 0票数 3

引用WebSharper 2.5alPAH文档的话,远程处理组件假定:

RPC-可调用的方法可以安全地通过未经身份验证的客户端从web调用。

是否存在保护远程调用的安全,以便只能从经过身份验证的客户端调用这些调用?

EN

回答 2

Stack Overflow用户

发布于 2013-10-27 15:48:39

WebSharper网站中的一个示例是一个聊天应用程序,它似乎就是通过提供一个返回身份验证令牌的登录方法来实现的,该方法随后需要调用其他函数:

代码语言:javascript
复制
[<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)

在这里可以找到完整的聊天示例:http://www.websharper.com/samples/Chat

票数 5
EN

Stack Overflow用户

发布于 2013-11-07 05:12:56

我自己也在玩这个。如果使用的是窗体身份验证,则可以从RPC方法中读取当前的HTTPContext,这样就可以执行如下操作:

代码语言:javascript
复制
[<Rpc>]
let protectedMethod () =
  match IntelliFactory.WebSharper.Sitelets.UserSession.GetLoggedInUser() with
  | Some(username) ->
    // User is authenticated... do stuff
    ()
  | None -> failwith "Authentication failed"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19347870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档