在某些情况下使用SharePoint Web服务我的桌面应用程序,结束了null值DefaultNetworkCredentials,所以调用失败。我需要再获得用户凭据,但我还没有找到一个straightfoward的方式来做到这一点。

我考虑实现在 HTTP概述的溶液:// WWW。 pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html

...但是,这仍然将需要我处理密码,我真的宁愿不做。我看过,但一直没能找到,提示用户并直接返回的NetworkCredential,更直接的方法,无需我多存储密码?

谢谢,

编辑:它看起来像我不会准确地找到我要找的......我会提示用户自己,当这种情况发生。

然而,如果我正确地解释一些回答这些问题,它可能是一个错误条件为DefaultNetworkCredentials为空像这样在首位。是这样吗?有没有办法迫使DefaultNetworkCredentials来填充,或者是不是真的一个简单的缓存,这只是记住的最后一个域/用户名/用于目标URI(这一天?该应用程序/会话?)。密码

有帮助吗?

解决方案

我不认为你能避免处理它们的第一次。但是,你的钩到凭据管理器,以便它们将被从该点向前缓存。 下面是关于如何做到这一点的文章。这是重中的P / Invoke,但可以给用户提供更一致的体验。

其他提示

这是潜在的问题的工作,空凭证,而不是唠叨的信息,他们已经进入了用户。

除非你希望他们能够从thier经常账户(可能是一个非常有用的功能)不同的登录到SharePoint。

.NET具有代码来处理的凭证,那么,为什么第二次猜测,通过走出去到外部的dll和添加其他扶养到您的应用程序?

我不知道有足够的了解代码的安全隐患,你必须在你的环境,但我本来以为存储的凭据客户端内存中的对象仅是“足够安全”在大多数情况下。

我不知道的东西,你处理的密码,但的 SecureString的可以使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top