从Windows身份验证应用程序中的当前用户获取网络凭据

时间:2012-07-10 13:22:17

标签: c# windows-authentication axapta business-connector

我想知道是否有可能获取当前用户对象并获取其凭据,以便我可以将它们传递给我用来连接到我的AX .NET Business Connector的NetworkCredential对象。因为,目前我必须指定它作为我在实例化NetworkCredential对象时设置的特定用户连接:

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

我希望做一些像private NetworkCredential nc = (NetworkCredential)HttpContext.User;这样的事情,但显然这不起作用......

通过这种方式,可以更容易地跟踪哪个用户创建了销售订单,例如,当时所有内容都是由我指定的用户创建的。

2 个答案:

答案 0 :(得分:27)

CredentialCache.DefaultNetworkCredentials

  

DefaultNetworkCredentials返回的凭据表示运行应用程序的当前安全上下文的身份验证凭据。对于客户端应用程序,这些应用程序通常是运行应用程序的用户的Windows凭据(用户名,密码和域)。

答案 1 :(得分:5)

我不完全理解您的问题,但您是否需要凭据来自ASP.NET?你可以尝试:

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

假设您的用户已通过会员提供商进行了身份验证。