1
誰是執行Task.Run內指定函數的用戶/身份?它是應用程序池嗎?ASP.Net Task.Run身份?
誰是執行Task.Run內指定函數的用戶/身份?它是應用程序池嗎?ASP.Net Task.Run身份?
它是應用程序池嗎?
是的。有一些例外,但那會讓你做一些不同的事情,然後你會知道,因爲你寫了它。否則:
Task.Run()
將執行當前線程或相同的憑據一個新的線程(因爲這催生了新線程的線程)上。
不要混淆線程憑證(應用程序池,或在web.config中另行配置)與發出請求的人HttpContextBase.User Property。
所有線程都按照web.config中的配置運行,除非您已明確更改該線程憑據。
(我說,否則配置爲你可以使用IIS Impersonation來允許線程模擬HttpContextBase.User
但請不要使用模擬)。
「將在當前線程或具有相同憑證的新線程上執行」 - 請詳細說明「相同」。與「當前用戶」中的相同或與「應用程序池」中的相同,正如您在答案的開頭所述。謝謝! –
與當前線程相同,即應用程序池。 –