我想要在我的Global.asax文件的Application_BeginRequest
中獲得對用戶對象的引用。我使用的是Context.User
,但我收到NullReferenceException
。 是否可以在Application_BeginRequest中獲取用戶對象引用?.NET Application_BeginRequest - 如何獲取用戶引用?
回答
您無權訪問用戶對象,因爲該請求尚未通過身份驗證。
嘗試使用Application_AuthenticateRequest代替。
這裏是所有的Global.asax事件的解釋: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5771721.html
和應用程序生命週期的MSDN演練: http://msdn.microsoft.com/en-us/library/ms178473.aspx
編輯: 我看到你在做什麼。改變你的if語句,如果沒有聲明(如果對不起語法錯了,我不使用VB.NET):
Sub Application_AuthenticateRequest()
If Context.User <> Nothing Then
Throw New Exception("User now exists")
End Sub
你會發現,這種方法被擊中一次以上。直到第二次或第三次纔會拋出異常。這是因爲每個請求都遵循應用程序生命週期。因此,當用戶爲空時,不應執行任何操作,而應在用戶不爲空時執行該操作。
如果你的目標是動態地限制訪問,您應該創建一個單獨的HttpModule,並將其分配給你限制
但是這些文件,你需要小心,不要進行重寫整個ASP.NET應用安全基礎結構。相反,您可以根據角色限制對某些文件夾的訪問。
不,您必須改用Application_AuthenticateRequest
。這是您擁有用戶的最早階段。
這拋出一個異常,仍然沒有用戶或什麼? Sub Application_AuthenticateRequest() 如果Context.User沒有那麼拋出新的異常(「沒有用戶」) End Sub – Ropstah 2010-06-18 20:45:22
- 1. 獲取.NET Facebook用戶ID
- 2. 如何使用.NET代碼獲取用戶的IP地址?
- 3. 如何使用C#在.NET中獲取當前用戶名?
- 4. 如何使用.Net CF 3.5獲取PDA/Windows Mobile的用戶名?
- 5. 如何使用.net獲取用戶的IP地址?
- 6. Application_BeginRequest用法
- 7. 如何獲取用戶ID
- 8. 如何獲取用戶名?
- 9. .net mvc3獲取用戶的角色
- 10. 在Asp .Net中獲取Facebook用戶
- 11. 獲取Windows登錄用戶名ASP .net
- 12. 獲取當前用戶Asp。 Net C#
- 13. 獲取用戶名通過.NET
- 14. 如何使用.Net neo4j客戶端獲取屬性的sum()?
- 15. 如何在.net中獲取用戶名或進程所有者
- 16. 如何在.NET 3.5+中爲用戶獲取「平面」域名
- 17. 如何使用.net獲取客戶端的LAN IP?
- 18. 如何在.net中獲取對Internet Explorer窗口句柄的引用.net
- 19. 如何使用.NET從Google獲取PR?
- 20. 獲取用戶時獲取用戶組
- 21. iCarousel獲取用戶點擊索引
- 22. 如何獲取用戶點擊javascript的gridview行的行索引?
- 23. 如何在.NET MVC 3 Intranet應用程序中獲取用戶的全名?
- 24. RallyAPI:如何獲取使用.NET api的項目的用戶列表?
- 25. 如何從ComponentName獲取活動引用
- 26. 如何獲取單元格引用
- 27. 如何獲取對ViewModel的引用
- 28. 如何獲取請求引用路徑?
- 29. 如何獲取List元素的引用?
- 30. 如何使用jQuery獲取索引Sortable
請檢查我的意見在其他答案由Julien ... http://stackoverflow.com/questions/3072768/net-application-beginrequest-how-to-get-user-reference/3072801#3072801 – Ropstah 2010-06-18 20:56:07
ropstah:我現在看到發生了什麼事。應用程序在處理認證請求之前發出多個請求(可能用於圖像,腳本,樣式表等)。那些其他的文件請求可能不需要認證,這就是爲什麼你的異常被拋出。嘗試在我的答案更新,看看是否澄清。另外,你想用你需要User對象的代碼來實現什麼? – 2010-06-19 01:14:44
事實並非如此,但它與** Global.asax生命週期有關。我需要''User.IsInRole()'功能,它僅在** _Application_AuthenticateRequest_之後可用**,即在Application_AuthorizeRequest() – Ropstah 2010-06-22 11:58:50