Asp.net-Mvc-3
如何從控制器外部訪問已登錄的使用者?
我正在使用 SignalR 在我的 MVC3 應用程序上處理來自客戶端的點擊。
每次使用者點擊某些內容時,我都需要驗證登錄使用者。
如果這是在 MVC3 控制器中,我會去:
if (User.Identity.IsAuthenticated) { string username = User.Identity.Name; //My code here. }但是,此程式碼執行不在 Controller 類中。
基本上,我如何從控制器外部訪問登錄的使用者名?
基本上,我如何從控制器外部訪問登錄的使用者名?
這取決於您要從哪裡訪問它們。如果您無權訪問 an ,
HttpContext您可以隨時嘗試 anHttpContext.Current.User並祈禱它不會因某種原因為空,例如不同的執行緒或其他東西。這對於依賴於任務和大量非同步處理的 SignalR 來說尤其可能。如果它在 SignalR 的集線器內,您可以訪問使用者:public class Chat: Hub { public void Foo() { string username = Context.User.Identity.Name; } }就個人而言,我不建議您使用
HttpContext.Current. 取決於您到底想達到什麼目標,以及我向您保證有更好的方法。