Tag: credentials

CredRead()无法跨登录会话工作

我按照这个答案使用Credential Manager API。 引用相关代码段: public static Credential ReadCredential(string applicationName) { IntPtr nCredPtr; bool read = CredRead(applicationName, CredentialType.Generic, 0, out nCredPtr); if (read) { using (CriticalCredentialHandle critCred = new CriticalCredentialHandle(nCredPtr)) { CREDENTIAL cred = critCred.GetCredential(); return ReadCredential(cred); } } return null; } 它工作得很好,除了当我注销我的Windows帐户然后再次登录时,CredRead()返回false, Marshal.GetLastWin32Error()给我1168或ERROR_NOT_FOUND 。 为什么会这样? 凭据管理API是仅适用于当前会话,还是我做错了什么? 编辑 : 此问题下面的评论说: 凭据管理API的文档似乎表明这些凭据与登录会话相关联。 也许LogonUser会导致新的登录会话,因此凭据不存在。 但是,我还没有发现任何证据表明凭据管理是特定于会话的。 我认为如果是这样的话就没用了。 编辑2 :仅为记录,如果您需要获取指示CredRead()失败原因的错误号,请检查本文中的ReadCred()方法。

如何在c#中从SmartCard读取凭据

在我的组织中,用户必须使用SmartCard进行交互式登录Windows工作站(95,Vista和7)。 几乎每天,我们都需要读取存储在SmartCard中的凭据,并将它们与ActiveDirectory进行比较,而无需实现自定义凭证管理器。 我们比较的字段是:userPrincialName和sAMAccountName。 你能告诉我一个代码,演示如何从智能卡读取凭据或引导我访问互联网上的文章/代码吗? 对互联网的搜索建议实施凭证管理器或使用其他语言(如C,C ++)。 另外,我遇​​到了这篇文章: http : //www.codeproject.com/Articles/17013/Smart-Card-Framework-for-NET由orouit编写,这是一个使用智能卡的框架 – 但我认为这太多了为了我的简单任务。 你怎么看?

如何使用C#在Windows上存储和检索凭据

我构建了一个C#程序,在Win10上运行。 我想通过按下按钮从该程序发送电子邮件(计算结果)。 我把来自:电子邮件地址和主题:等等放在C#属性中,但我不想在程序的任何地方放置明文密码,我不希望用户输入密码每次发送邮件时为服务器。 可以这样做吗? 如果是这样,如何(一般)? 我正在考虑将所有电子邮件信息(包括服务器的加密密码)放在数据文件中,以便在程序启动期间读取。 或许Win10有一个设施…

WebClient访问具有凭据的页面

我正在尝试访问同一个域/同一个asp.net应用程序的网页,这是受密码保护的。 对于发起此呼叫的网页和正在访问的网页,凭据都是相同的。 这是代码,我不知道为什么我总是以登录表单html代码结束? using (WebClient client = new WebClient()) { client.QueryString.Add(“ID”, “1040”); //add parameters //client.Credentials = CredentialCache.DefaultCredentials; //I tried to add credentials like this client.Credentials = new NetworkCredential(“username”, “password”); string htmlCode = client.DownloadString(“http://domain.loc/testpage.aspx”); }