我正在为我的网络系统类创建一个网站,我将在其中实现一个登录平台。该网站经过认证后,用户将能够向其他用户发送消息,我将实施SignalR来执行实时消息传递。
我想创建一个系统,在AngularJS中我可以调用C#后端提供用户名和密码并进行身份验证。我还希望同时使用SignalR的基于角色的身份验证来确保我的方法是安全的。
示例:
[Authorize(Roles = "Admin")]
public class AdminAuthHub : Hub
{
}
目前,我已经编写了自己的代码来接受用户名和密码并对其进行哈希并存储哈希值。但是,我不想在这里重新发明轮子。我想使用基于Microsoft的身份验证系统,因为我在C#后端和SignalR技术中工作。
我目前正在使用Microsoft Azure进行托管,并且可以正常运行,但我最终将切换到我维护的本地托管的Windows Server。我听说过使用Active Directory但从未使用过它,并且必须进行大量设置才能为新服务器做好准备。
我的总体问题是我走的路是什么?另外,如果我严格遵循Microsoft的一切方式,在Windows Server 2016上设置活动目录是否简单?在我的研究过程中,我发现有一种ASP.NET方法可以根据SQL Server数据库对用户进行身份验证。这种方法是否更可取,因为系统可以在ASP.NET之外使用,数据采用我之前使用过的形式?
我是否编写自己的自定义身份验证逻辑,接受用户名和密码以及散列和使用自己的表和数据库。然后在SignalR方面找到一种设置用户变量并从我的数据库设置其角色的方法。然后只需在每个方法调用的开头执行检查。
答案 0 :(得分:0)
互联网上有很多关于如何解决其中一些问题的信息。
快速google for" Angualr / Asp.net身份/信号员"返回一些资源,您可以满足您的需求,可能不仅仅是,但您应该能够结合一些方法。
这里有一些链接:
SignalR Authorization using Web API Token
https://www.codeproject.com/Articles/884647/Web-app-using-Web-API-SignalR-and-AngularJS