使用SignalR在ASP.NET MVC服务器上对Xamarin.Forms-Client进行身份验证
本文关键字:Xamarin Forms-Client 身份验证 服务器 SignalR ASP NET MVC 使用 | 更新日期: 2023-09-27 18:26:42
我创建了一个新的ASP.NET MVC项目,默认情况下,它似乎使用.mdf数据库文件进行身份验证。
我想验证我的Xamarin(Xamarin.Forms)客户。原因是我稍后想在SignalR集线器中使用[Authorize]
属性。
我现在想知道的是:
我到底需要做些什么来验证我的客户?我必须用我的一个hub方法来做吗?以及我必须使用我的名字访问/调用哪些类&用于此目的的密码?还是我的想法完全错了,我必须用一种完全不同的方式来做?
提前感谢!
我不会直接在您的集线器中进行身份验证。我会先进行身份验证,然后允许访问集线器。为了安全地做到这一点,我会做这样的事情:
- 例如,创建Web API服务以针对数据库进行身份验证
- 让客户端对密码进行预散列
- 向Web API登录服务发送HppRequest,发送用户名和预哈希密码
- 使登录方法使用数据库中的信息完成密码的哈希,并对用户进行身份验证
- 为该用户分配一些安全令牌,并将其发送回客户端(如果可能,通过HTTPS)
- 制作一个自定义的authorize属性,这样您就可以根据安全令牌进行检查
- 用新的[授权]标记集线器类
这至少是一个如何安全地完成这项工作的想法。对于密码的双重散列,我们使用SHA512CryptoServiceProvider
、RNGCryptoServiceProvider
和Rfc2898DeriveBytes
的组合。