【问题标题】:Using the current HTTP request identity as the default credentials for SharpSVN使用当前 HTTP 请求身份作为 SharpSVN 的默认凭据
【发布时间】:2009-09-09 17:43:27
【问题描述】:

我正在尝试通过 Web 应用程序在 SharpSVN 中调用 RemoteCreateDirectories,并希望凭据是登录用户的凭据。这可以隐式完成还是按照下面的示例需要用户名和密码?

using (var svnClient = new SvnClient())
{
  svnClient.Authentication.DefaultCredentials = new NetworkCredential(@"aaa\bbb", "ccc");
  svnClient.LoadConfiguration(repoName);
  svnClient.RemoteCreateDirectories(uris, args);
}

我不想明确地向用户请求凭据(它是一个集成的身份验证应用程序),所以我看到的唯一其他方法是使用不理想的服务帐户。

【问题讨论】:

    标签: .net security sharpsvn


    【解决方案1】:

    CredentialCache.DefaultCredentials 包含当前凭据的令牌。它不提供实际的用户名和/或密码。

    您需要准确的用户名和密码才能通过 SharpSvn 将它们传递给 Subversion 库。

    【讨论】:

    • 感谢 Bert,为了清楚起见,如果不要求用户手动输入用户名和密码,这在 Web 应用程序中是不可能的吗?
    【解决方案2】:

    您是否尝试过使用CredentialCache.DefaultCredentials - 这应该包含当前登录用户的凭据。

    http://support.microsoft.com/kb/813834

    【讨论】:

    • 不起作用,请参阅我接受的背景答案中的链接:“当您使用 System.Net.Credentia​lCache.DefaultNetwor​kCredentials 它确实包含当前用户 /token/ 即在本地机器上有效,而不是可以传输到存储库的真实用户名和密码。”
    【解决方案3】:

    终于找到了reference,它本质上说使用当前用户的身份是不可能的,唯一的选择是手动构建目录树或使用管理员/服务帐户。我选择了后者;不理想,但我仍然可以正常运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      相关资源
      最近更新 更多