調試一些.NET代碼,當我失去了一些東西基本在這裏:在.NET中,System.Threading.Thread.CurrentPrincipal沒有更新
public static void CreateServiceSessionStore()
{
ServiceSessionStore serviceSessionStore = new ServiceSessionStore();
serviceSessionStore.SetIdentity(System.Threading.Thread.CurrentPrincipal.Identity);
System.Threading.Thread.CurrentPrincipal = serviceSessionStore;
// Here, CurrentPrincipal still isn't a serviceSessionStore!
}
在這段代碼中,一切似乎都歡快地沿着突突。但是...當我調試,並在最後一行之前,我正在查看System.Threading.Thread.CurrentPrincipal。該值是一個WebSessionStore對象,這正是我所期望的,並且我認爲最後一行應將其更改爲ServiceSessionStore對象。但事實並非如此。我可以看看serviceSessionStore,它持有一個ServiceSessionStore對象,但在線路運行之後,CurrentPrincipal仍然包含一個WebSessionStore對象。沒有錯誤被拋出。
現在,除了這些對象實際做什麼之外,有人可以提供一個關於爲什麼它似乎拒絕更新CurrentPrincipal的想法嗎?
我強烈懷疑沒有權限(SecurityPermission)。我不明白爲什麼你不會看到拋出的異常。有趣的 – sehe
@sehe:值得入住。 – Beska