如何仅在当前运行的Windows会话上制作Grapevine REST Server

时间:2018-03-15 17:06:58

标签: c# rest httplistener grapevine

我在一个Windows会话(用户A)上的C#应用​​程序中运行Grapevine REST服务器(Grapevine的当前实现依赖于System.Net.HttpListener公开的功能),例如localhost:8888

如果我让用户A会话打开并且可执行文件正在运行并登录到新的用户B会话,我将访问我的REST服务器localhost:8888。

我们可以在启动它的会话上限制对REST服务器的访问吗?

1 个答案:

答案 0 :(得分:1)

Grapevine使用.NET中的内置HttpListener,您可以使用Advanced类的RestServer属性直接访问和配置。

var server = new Grapevine.Server.RestServer();
var listener = server.Advanced; // This is an HttpListener object

如果开箱即用,您可以使用任何方式配置身份验证。一个不错的起点可能是AuthenticationSchemes属性。

如果传统的身份验证方法不适合您的用例,则您可能希望尝试在应用程序启动时获取登录用户,然后在HttpListener上添加事件处理程序,该事件处理程序会自动返回{{3 }}(如果该请求不是来自该用户的)。我实际上还没有亲自尝试过,但这就是我要尝试的地方。