获得当前用户网络凭据在Windows身份验证应用程序

问题描述:

我想知道是否有可能获得当前用户对象,并得到他们的凭证,所以我可以连同赋予我使用连接到我的AX一个NetworkCredential对象传递它们.NET业务连接器。至于,此刻我在指定其连接为我设定一个特定的用户,当我实例化一个NetworkCredential对象:获得当前用户网络凭据在Windows身份验证应用程序

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

我希望做一些事情,如:private NetworkCredential nc = (NetworkCredential)HttpContext.User;但显然赢得”将不起作用......

这样一来,它更容易跟踪哪些用户已创建例如销售订单,截至目前一切得到由我指定的用户创建..

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

我不不要完全理解你的问题,而是你要求的来自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