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

Cal*_*ass 14 c# axapta windows-authentication business-connector

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

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

我本来希望做类似的事情,private NetworkCredential nc = (NetworkCredential)HttpContext.User;但显然这不会奏效......

这样,就可以更容易地跟踪哪个用户创建了销售订单,例如,当时所有内容都由我指定的用户创建.

Dam*_*ver 28

CredentialCache.DefaultNetworkCredentials

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

  • 当我使用它时,凭证都是空字符串? (3认同)
  • 它返回一个`SystemNetworkCredential`,一个派生自`NetworkCredential`的内部类.其中有隐藏的魔法,但它故意将用户名,密码等设置为空字符串,如果这就是你所指的. (3认同)

Jai*_*res 5

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

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

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

  • 我正在使用ASP.NET MVC 3 Windows身份验证应用程序,所以我假设它们已经过身份验证?当我查看`credential`时,所有字段都是空字符串? (3认同)