[英]HttpContext null in Signalr OnConnected method
我正在使用signalr,但在Onconnected
方法中遇到問題。 我需要urlreferrer
,但我得到一個空指針異常。
public override Task OnConnected()
{
string urlreferrer = HttpContext.Current.Request.UrlReferrer.ToString();
// Getting null exception here..
return base.OnConnected();
}
我怎么解決這個問題?
SignalR公開自己的Context
對象,它與HttpContext
有點不同,但它包含有關請求的大部分信息。
要獲取引薦來源,您必須檢查隨請求傳遞的http標頭。 像這樣:
public override Tasks.Task OnConnected()
{
var referrer = Context.Request.Headers["Referer"];
return base.OnConnected();
}
關於任何人仍在尋找答案的機會,我發現我能夠在SignalR JS中使用未記錄的'qs'參數將數據傳遞到集線器。 使用此方法,應該可以獲取引用者(在客戶端)並將其發送到服務器以進行進一步處理。
在Client JS中:
$.connection.hub.qs = "referrer=" + encodeURIComponent(location.href);
$.connection.hub.start().done(function () {
//initialization code
});
並在服務器代碼中:
public override Task OnConnected()
{
var str = Context.Request.QueryString["referrer"];
if (!string.IsNullOrWhiteSpace(str))
{
//do stuff
}
}
HTH!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.