2009-12-03 7 views

Antwort

12

Der größte Unterschied ist, dass sie nicht gleich sein müssen.

Im Allgemeinen ist HttpContext.Current.User der Anmeldebenutzer, während Thread.CurrentPrincipal die Workerprozessidentität ist.

In IIS 5.x ist Thread.CurrentPrincipal standardmäßig ASPNET. Auf IIS 6 und höher ist Thread.CurrentPrincipal standardmäßig der Netzwerkdienst oder Anwendungspoolkonto.

Um es komplex zu machen, wenn Sie den ASP.NET-Identitätswechsel aktivieren, sind beide identisch mit dem Anmeldebenutzer. :)

versuchen, einige wirklich gute Bücher zu diesem Thema und Microsoft MSDN-Artikel zu lesen,

http://msdn.microsoft.com/en-us/library/ms998351.aspx

Ein weiterer Vorschlag ist, einen Debugger zu verwenden, um den Arbeitsprozess zu befestigen und die zur Laufzeit überprüfen. Das kann dir ein besseres Aussehen geben.

2

Ein weiterer großer Unterschied ist, dass Ihr Code nicht immer Zugriff auf den HttpContext hat. (Zum Beispiel, wenn Sie alle Ihre BL in einer Assembly haben, die möglicherweise von einer Webanwendung verwendet wird oder nicht). Während sie zwei Benutzerkonten unterschiedlich sein können, wenn Sie das Thread.CurrentPrincipal verwenden, wird Ihr Code immer erhalten an diesem Benutzerobjekt, egal wo Sie in Ihrem Code sind.

Verwandte Themen