我在Windows (用户A)上的葡萄树会话(用户A)上运行C#应用程序中的C# REST服务器( Grapevine的当前实现依赖于System.Net.HttpListener公开的特性),例如在本地主机上:8888。
如果我让用户A会话在运行可执行文件的情况下打开,并登录到新的用户B会话,则可以在localhost: 8888访问我的REST服务器。
我们可以限制对启动REST服务器的会话的访问吗?
发布于 2019-08-09 16:52:34
Grapevine使用.NET中的内置.NET,您可以使用RestServer类的Advanced属性直接访问和配置它。
var server = new Grapevine.Server.RestServer();
var listener = server.Advanced; // This is an HttpListener object如果您使用的是开箱即用的HttpListener,您可以以任何方式配置身份验证。一个很好的起点可能是AuthenticationSchemes属性。
如果传统的身份验证方法不适合您的用例,那么您可能希望在应用程序启动时获得登录用户,然后在server.Router.BeforeRouting上添加一个事件处理程序,如果请求不是来自该用户,则该事件处理程序将自动返回一个401或403。我自己也没试过,但那是我要去的地方。
https://stackoverflow.com/questions/49305325
复制相似问题