Using the current HTTP request identity as the def

2019-07-03 13:54发布

I’m trying to call RemoteCreateDirectories in SharpSVN through a web app and want the credentials to be that of the logged on user. Can this be done implicitly or is the username and password required as per the example below?

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

I don’t want to explciitly request credentials from the user (it’s an integrated auth app) so the only other way I see around this is to use a service account which is not ideal.

3条回答
小情绪 Triste *
2楼-- · 2019-07-03 14:20

Have you tried using CredentialCache.DefaultCredentials - this should contain the credentials of the currently logged in user.

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

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-07-03 14:38

CredentialCache.DefaultCredentials contains a token of the current credentials. It doesn't provide the actual username and/or password.

You would need the exact username and password to pass them to the Subversion libraries via SharpSvn.

查看更多
别忘想泡老子
4楼-- · 2019-07-03 14:38

Finally found a reference which essentially says this is not possible using the identity of the current user and the only options are manual construction of the directory tree or using an admin / service account. I opted for the latter; not ideal but I’m up and running nonetheless.

查看更多
登录 后发表回答