使用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方法来做吗?以及我必须使用我的名字访问/调用哪些类&用于此目的的密码?还是我的想法完全错了,我必须用一种完全不同的方式来做?

提前感谢!

使用SignalR在ASP.NET MVC服务器上对Xamarin.Forms-Client进行身份验证

我不会直接在您的集线器中进行身份验证。我会先进行身份验证,然后允许访问集线器。为了安全地做到这一点,我会做这样的事情:

  1. 例如,创建Web API服务以针对数据库进行身份验证
  2. 让客户端对密码进行预散列
  3. 向Web API登录服务发送HppRequest,发送用户名和预哈希密码
  4. 使登录方法使用数据库中的信息完成密码的哈希,并对用户进行身份验证
  5. 为该用户分配一些安全令牌,并将其发送回客户端(如果可能,通过HTTPS)
  6. 制作一个自定义的authorize属性,这样您就可以根据安全令牌进行检查
  7. 用新的[授权]标记集线器类

这至少是一个如何安全地完成这项工作的想法。对于密码的双重散列,我们使用SHA512CryptoServiceProviderRNGCryptoServiceProviderRfc2898DeriveBytes的组合。