2012-07-10 80 views
13

我想知道是否有可能獲得當前用戶對象,並得到他們的憑證,所以我可以連同賦予我使用連接到我的AX一個NetworkCredential對象傳遞它們.NET業務連接器。至於,此刻我在指定其連接爲我設定一個特定的用戶,當我實例化一個NetworkCredential對象:獲得當前用戶網絡憑據在Windows身份驗證應用程序

private NetworkCredential nc = new NetworkCredential("myUser", "myPassword", "myDomain");

我希望做一些事情,如:private NetworkCredential nc = (NetworkCredential)HttpContext.User;但顯然贏得」將不起作用......

這樣一來,它更容易跟蹤哪些用戶已創建例如銷售訂單,截至目前一切得到由我指定的用戶創建..

回答

23

CredentialCache.DefaultNetworkCredentials

DefaultNetworkCredentials返回的憑證代表運行應用程序的當前安全上下文的身份驗證憑證。對於客戶端應用程序,這些通常是運行該應用程序的用戶的Windows憑據(用戶名,密碼和域)。

+2

當我使用這個,憑證都是空字符串? – CallumVass 2012-07-10 14:45:55

+1

它返回一個'SystemNetworkCredential',一個派生自'NetworkCredential'的內部類。它裏面有隱藏的魔法,但它故意將用戶名,密碼等設置爲空字符串,如果這就是你所指的。 – 2012-07-10 14:50:19

+0

啊好吧,我會嘗試一下,然後..感謝了很多 – CallumVass 2012-07-10 14:50:47

4

我不不要完全理解你的問題,而是你要求的來自ASP.NET的呼叫證書?您可以嘗試:

Uri uri = new Uri("http://tempuri.org/"); 
ICredentials credentials = CredentialCache.DefaultCredentials; 
NetworkCredential credential = credentials.GetCredential(uri, "Basic"); 

假設您的用戶已通過成員資格提供程序進行身份驗證。

+3

我使用的是ASP.NET MVC 3 Windows身份驗證的應用程序,所以我認爲他們已經被驗證?當我看「憑證」時,所有的字段都是空字符串? – CallumVass 2012-07-10 14:44:45

相關問題