回答
看看.NET類ServiceSecurityContext.Current
- >http://msdn.microsoft.com/en-us/library/system.servicemodel.servicesecuritycontext.aspx
例如從MSDN下面的例子說明了如何使用這個類
// Run this method from within a method protected by the PrincipalPermissionAttribute
// to see the security context data, including the primary identity.
public void WriteServiceSecurityContextData(string fileName)
{
using (StreamWriter sw = new StreamWriter(fileName))
{
// Write the primary identity and Windows identity. The primary identity is derived from
// the credentials used to authenticate the user. The Windows identity may be a null string.
sw.WriteLine("PrimaryIdentity: {0}", ServiceSecurityContext.Current.PrimaryIdentity.Name);
sw.WriteLine("WindowsIdentity: {0}", ServiceSecurityContext.Current.WindowsIdentity.Name);
sw.WriteLine();
// Write the claimsets in the authorization context. By default, there is only one claimset
// provided by the system.
foreach (ClaimSet claimset in ServiceSecurityContext.Current.AuthorizationContext.ClaimSets)
{
foreach (Claim claim in claimset)
{
// Write out each claim type, claim value, and the right. There are two
// possible values for the right: "identity" and "possessproperty".
sw.WriteLine("Claim Type = {0}", claim.ClaimType);
sw.WriteLine("\t Resource = {0}", claim.Resource.ToString());
sw.WriteLine("\t Right = {0}", claim.Right);
}
}
}
}
嗨JD,即時獲取空引用o ServiceSecurityContext.Current ..任何想法爲什麼?我從一個控制檯應用程序運行。 – Grant 2010-11-18 05:53:31
@Grant:這意味着您的控制檯應用程序可能以匿名身份運行。你可以通過在運行時檢查'System.ServiceModel.ServiceSecurityContext'類來檢查這個問題 – Darbio 2010-11-18 06:02:00
謝謝JD。我也嘗試從Windows應用程序和它的anonymouse運行。這是什麼意思?我目前從Windows 7登錄到Windows域。難道我沒有當前身份? – Grant 2010-11-18 06:10:15
你可以檢查
var isAnonymous = ServiceSecurityContext.Anonymous.IsAnonymous;
避免null
上ServiceSecurityContext.Current
- 1. 如何判斷代碼是否在knitr/rmarkdown環境中執行?
- 2. 如何判斷AsyncTaskLoader運行
- 3. 我的Perl程序如何判斷是否在mod_perl下運行?
- 4. 你有在Windows下運行的Rails開發環境嗎?
- 5. 如何判斷應用程序在C++中運行的位置
- 6. 如何判斷我是否在網絡服務器下運行?
- 7. 如何判斷Flex是否在調試模式下運行?
- 8. Linux下半部分如何在中斷環境中執行?
- 9. 如何判斷你碰過CCLabel?
- 10. 在Linux環境下運行.bat
- 11. 如何判斷線程是否通過其ID與C#運行
- 12. 如何讓我的VB.NET程序在MS DOS環境下運行?
- 13. 用c sharp在dot net環境下運行原生Delphi代碼
- 14. 在cygwin環境下用opemcv運行C程序
- 15. Flash Preloader,如何判斷是否在壓縮的環境中並相應加載
- 16. 如何在測試環境下運行web應用程序
- 17. 如何在不同環境下運行rspec測試?
- 18. 如何在Linux環境下運行.net應用程序?
- 19. 如何確保Spyder在conda環境下運行?
- 20. 如何在LINUX環境下運行對象TCL?
- 21. 如何知道代碼在什麼環境下運行?
- 22. Rails如何知道在什麼環境下運行?
- 23. 如何在Windows環境下安裝和運行(設置)reddit.com?
- 24. 如何獲取eclipse webby插件在根環境下運行webapp
- 25. 運行C程序的Unix環境
- 26. 如何判斷我的jQuery代碼是否在iFrame中運行?
- 27. 如何判斷什麼樣的課程/場景正在運行?
- 28. 如何判斷JCIFS的特定實例在哪裏運行?
- 29. 如何判斷我的Javascript代碼是否在Jint中運行?
- 30. 如何判斷openoffice的哪個應用程序正在運行?
注:我知道,它應該是不言而喻的,但我真的正在尋找一個編程解決方案.. – Grant 2010-11-18 05:39:51