16

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

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

我希望做类似的事情:private NetworkCredential nc = (NetworkCredential)HttpContext.User;但显然那是行不通的......

这样,例如,跟踪哪个用户创建了销售订单会更容易,因为此时所有内容都是由我指定的用户创建的。

4

3 回答 3

34

CredentialCache.DefaultNetworkCredentials?

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

于 2012-07-10T13:44:58.497 回答
5

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

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

假设您的用户已经通过 Membership Provider 进行了身份验证。

于 2012-07-10T13:44:53.210 回答
0

以上的组合对我来说非常适合解决身份验证问题。

var credentials = new NetworkCredential();
ICredentials credent = CredentialCache.DefaultNetworkCredentials;
credentials = (NetworkCredential)credent;
var serverId = new LdapDirectoryIdentifier(GlobalVariables.LDAPServer);

LdapConnection connection = new LdapConnection(serverId, credentials);
connection.Bind();
于 2021-09-08T14:04:29.757 回答