引用WebSharper 2.5alPAH文档的话,远程处理组件假定:
RPC-可调用的方法可以安全地通过未经身份验证的客户端从web调用。
是否存在保护远程调用的安全,以便只能从经过身份验证的客户端调用这些调用?
发布于 2013-10-27 15:48:39
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)在这里可以找到完整的聊天示例:http://www.websharper.com/samples/Chat
发布于 2013-11-07 05:12:56
我自己也在玩这个。如果使用的是窗体身份验证,则可以从RPC方法中读取当前的HTTPContext,这样就可以执行如下操作:
[<Rpc>]
let protectedMethod () =
match IntelliFactory.WebSharper.Sitelets.UserSession.GetLoggedInUser() with
| Some(username) ->
// User is authenticated... do stuff
()
| None -> failwith "Authentication failed"https://stackoverflow.com/questions/19347870
复制相似问题