【发布时间】:2016-02-18 18:39:40
【问题描述】:
我有一个小项目,其中包含一个 Windows 窗体 Signalr 客户端和一个 Windows 窗体服务器。客户端可以连接到服务器。现在,我想实现一个登录系统。我阅读了一些关于此的博客文章、文章和问题,但我没有找到解决方法。我想使用信号器身份验证系统,因此我可以使用 [Authorize] 等属性,因为它已经存在。
要使用它,我需要验证用户名和密码。客户端可以像这样在标头中发送凭据吗
Connection = new HubConnection(BaseEngine.ServerURI);
Connection.Headers.Add("Username", username);
Connection.Headers.Add("Password", password);
HubProxy = Connection.CreateHubProxy("ChatHub");
await Connection.Start();
服务器应该以某种方式验证这些凭据,如果无效则抛出异常?
我尝试过使用内置系统,但没有成功。我无法在 OnConnected 方法中获取 Context.User。作为一种解决方法,我尝试在标头中发送用户名和密码并验证它们,但 OnConnected 方法不能向客户端抛出错误。我确信客户端必须有一个 auth cookie,但我真的不知道如何添加它。
谢谢!
【问题讨论】: