views:

404

answers:

3

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.

A: 

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

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

samjudson
Doesn't work, see the link in my accepted answer for the background:"When you use System.Net.Credentia​lCache.DefaultNetwor​kCredentials it really contains the current user /token/ that is valid on the local machine, not a real username and password that can be transferred to a repository."
Troy Hunt
A: 

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.

Troy Hunt
+1  A: 

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.

Bert Huijben
Thanks Bert, so just to be crystal clear, this is not possible in a web app without asking the user to manually enter a username and password?
Troy Hunt