簡體   English   中英

在SignalR集線器內部檢索UserID時出現問題

[英]Issue retrieving UserID inside SignalR hub

我在強制每個連接的客戶端進行客戶端更新時運行了SignalR私人聊天系統,但我想簡化此流程,因此僅在特定的連接用戶專門接收新消息時才對其進行更新。 使用msdn上發布的“將SignalR用戶映射為連接”,我進行了所有設置,它記錄並更改了連接ID和用戶,但是只要我想為我的Sql查詢檢索其關聯的UserID,我就會得到Null嗎?

如上所述,當我使用HTTPContext.User.Identity.GetUserId()檢索用戶GUID時,查詢工作正常,但是現在我更新了代碼,無論我做什么都無法再獲取當前連接的UsersID。 即使關聯的數據庫功能在檢索當前用戶UserName時都沒有問題...

public override Task OnConnected()
{
var name = Context.User.Identity.Name;
who = Context.User.Identity.Name;
UserID = Context.User.Identity.GetUserId();
.....
}

string query = "SELECT msgTo, msgFrom, msgContent, date FROM [dbo].[messages] WHERE msgTo = @id";
connection.Open();
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@id", UserID);
try
{
  ...
}

參數化查詢'(@id nvarchar(4000))SELECT msgTo,msgFrom,msgContent,日期FRO'需要未提供的參數'@id'。

我設法通過發送每個請求的查詢字符串來修復它($ .connection.hub.qs = {userId:document.getElementById(“ usrid”)。value};),然后在集線器更新功能中檢索它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM