本文整理汇总了C#中Microsoft.Alm.Authentication.TargetUri类的典型用法代码示例。如果您正苦于以下问题:C# TargetUri类的具体用法?C# TargetUri怎么用?C# TargetUri使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TargetUri类属于Microsoft.Alm.Authentication命名空间,在下文中一共展示了TargetUri类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetAuthentication
/// <summary>
/// Gets a configured authentication object for 'github.com'.
/// </summary>
/// <param name="targetUri">The uniform resource indicator of the resource which requires
/// authentication.</param>
/// <param name="tokenScope">The desired scope of any personal access tokens aqcuired.</param>
/// <param name="personalAccessTokenStore">A secure secret store for any personal access
/// tokens acquired.</param>
/// <param name="authentication">(out) The authenitcation object if successful.</param>
/// <returns>True if success; otherwise false.</returns>
public static bool GetAuthentication(
TargetUri targetUri,
GithubTokenScope tokenScope,
ICredentialStore personalAccessTokenStore,
AcquireCredentialsDelegate acquireCredentialsCallback,
AcquireAuthenticationCodeDelegate acquireAuthenticationCodeCallback,
AuthenticationResultDelegate authenticationResultCallback,
out BaseAuthentication authentication)
{
const string GitHubBaseUrlHost = "github.com";
BaseSecureStore.ValidateTargetUri(targetUri);
if (personalAccessTokenStore == null)
throw new ArgumentNullException("personalAccessTokenStore", "The `personalAccessTokenStore` is null or invalid.");
Trace.WriteLine("GithubAuthentication::GetAuthentication");
if (targetUri.ActualUri.DnsSafeHost.EndsWith(GitHubBaseUrlHost, StringComparison.OrdinalIgnoreCase))
{
authentication = new GithubAuthentication(tokenScope, personalAccessTokenStore, acquireCredentialsCallback, acquireAuthenticationCodeCallback, authenticationResultCallback);
Trace.WriteLine(" authentication for GitHub created");
}
else
{
authentication = null;
Trace.WriteLine(" not github.com, authentication creation aborted");
}
return authentication != null;
}
示例2: InteractiveLogon
/// <summary>
/// <para>Creates an interactive logon session, using ADAL secure browser GUI, which
/// enables users to authenticate with the Azure tenant and acquire the necessary access
/// tokens to exchange for a VSTS personal access token.</para>
/// <para>Tokens acquired are stored in the secure secret stores provided during
/// initialization.</para>
/// </summary>
/// <param name="targetUri">The unique identifier for the resource for which access is to
/// be acquired.</param>
/// <param name="requestCompactToken">
/// <para>Requests a compact format personal access token; otherwise requests a standard
/// personal access token.</para>
/// <para>Compact tokens are necessary for clients which have restrictions on the size of
/// the basic authentication header which they can create (example: Git).</para>
/// </param>
/// <returns><see langword="true"/> if a authentication and personal access token acquisition was successful; otherwise <see langword="false"/>.</returns>
public bool InteractiveLogon(TargetUri targetUri, bool requestCompactToken)
{
BaseSecureStore.ValidateTargetUri(targetUri);
Trace.WriteLine("VstsAadAuthentication::InteractiveLogon");
try
{
TokenPair tokens;
if ((tokens = this.VstsAuthority.AcquireToken(targetUri, this.ClientId, this.Resource, new Uri(RedirectUrl), null)) != null)
{
Trace.WriteLine(" token aqusition succeeded.");
this.StoreRefreshToken(targetUri, tokens.RefeshToken);
return this.GeneratePersonalAccessToken(targetUri, tokens.AccessToken, requestCompactToken).Result;
}
}
catch (AdalException)
{
Trace.WriteLine(" token aquisition failed.");
}
Trace.WriteLine(" interactive logon failed");
return false;
}
示例3: ValidateTargetUri
internal static void ValidateTargetUri(TargetUri targetUri)
{
if (targetUri == null)
throw new ArgumentNullException("targetUri");
if (!targetUri.IsAbsoluteUri || !targetUri.ActualUri.IsAbsoluteUri)
throw new ArgumentException("The target must be an absolute URI.", "targetUri");
}
示例4: ValidateTargetUri
internal static void ValidateTargetUri(TargetUri targetUri)
{
if (ReferenceEquals(targetUri, null))
throw new ArgumentNullException(nameof(targetUri));
if (!targetUri.IsAbsoluteUri)
throw new ArgumentException(nameof(targetUri.IsAbsoluteUri));
}
示例5: AcquireToken
/// <summary>
/// acquires a <see cref="TokenPair"/> from the authority via an interactive user logon
/// prompt.
/// </summary>
/// <param name="targetUri">
/// The uniform resource indicator of the resource access tokens are being requested for.
/// </param>
/// <param name="clientId">Identifier of the client requesting the token.</param>
/// <param name="resource">
/// Identifier of the target resource that is the recipient of the requested token.
/// </param>
/// <param name="redirectUri">
/// Address to return to upon receiving a response from the authority.
/// </param>
/// <param name="queryParameters">
/// Optional: appended as-is to the query string in the HTTP authentication request to the
/// authority.
/// </param>
/// <returns>If successful a <see cref="TokenPair"/>; otherwise <see langword="null"/>.</returns>
public TokenPair AcquireToken(TargetUri targetUri, string clientId, string resource, Uri redirectUri, string queryParameters = null)
{
Debug.Assert(targetUri != null && targetUri.IsAbsoluteUri, "The targetUri parameter is null");
Debug.Assert(!String.IsNullOrWhiteSpace(clientId), "The clientId parameter is null or empty");
Debug.Assert(!String.IsNullOrWhiteSpace(resource), "The resource parameter is null or empty");
Debug.Assert(redirectUri != null, "The redirectUri parameter is null");
Debug.Assert(redirectUri.IsAbsoluteUri, "The redirectUri parameter is not an absolute Uri");
Trace.WriteLine("AzureAuthority::AcquireToken");
TokenPair tokens = null;
queryParameters = queryParameters ?? String.Empty;
try
{
Trace.WriteLine(String.Format(" authority host url = '{0}'.", AuthorityHostUrl));
AuthenticationContext authCtx = new AuthenticationContext(AuthorityHostUrl, _adalTokenCache);
AuthenticationResult authResult = authCtx.AcquireToken(resource, clientId, redirectUri, PromptBehavior.Always, UserIdentifier.AnyUser, queryParameters);
tokens = new TokenPair(authResult);
Trace.WriteLine(" token acquisition succeeded.");
}
catch (AdalException)
{
Trace.WriteLine(" token acquisition failed.");
}
return tokens;
}
示例6: UriToSimpleName
public static string UriToSimpleName(TargetUri targetUri, string @namespace)
{
const string TokenNameBaseFormat = "{0}:{1}://{2}";
const string TokenNamePortFormat = TokenNameBaseFormat + ":{3}";
Debug.Assert(targetUri != null, "The targetUri parameter is null");
Trace.WriteLine("Secret::UriToName");
string targetName = null;
// trim any trailing slashes and/or whitespace for compat with git-credential-winstore
string trimmedHostUrl = targetUri.Host
.TrimEnd('/', '\\')
.TrimEnd();
Uri resolvedUri = targetUri.ResolvedUri;
if (resolvedUri.IsDefaultPort)
{
targetName = String.Format(TokenNameBaseFormat, @namespace, resolvedUri.Scheme, trimmedHostUrl);
}
else
{
targetName = String.Format(TokenNamePortFormat, @namespace, resolvedUri.Scheme, trimmedHostUrl, resolvedUri.Port);
}
Trace.WriteLine(" target name = " + targetName);
return targetName;
}
示例7: InteractiveLogon
/// <summary>
/// Opens an interactive logon prompt to acquire acquire an authentication token from the
/// Microsoft Live authentication and identity service.
/// </summary>
/// <param name="targetUri">
/// The uniform resource indicator of the resource access tokens are being requested for.
/// </param>
/// <param name="requireCompactToken">
/// True if a compact access token is required; false if a standard token is acceptable.
/// </param>
/// <returns>True if successfull; otherwise false.</returns>
public bool InteractiveLogon(TargetUri targetUri, bool requireCompactToken)
{
const string QueryParameters = "domain_hint=live.com&display=popup&site_id=501454&nux=1";
BaseSecureStore.ValidateTargetUri(targetUri);
Trace.WriteLine("VstsMsaAuthentication::InteractiveLogon");
try
{
TokenPair tokens;
if ((tokens = this.VstsAuthority.AcquireToken(targetUri, this.ClientId, this.Resource, new Uri(RedirectUrl), QueryParameters)) != null)
{
Trace.WriteLine(" token successfully acquired.");
this.StoreRefreshToken(targetUri, tokens.RefeshToken);
return this.GeneratePersonalAccessToken(targetUri, tokens.AccessToken, requireCompactToken).Result;
}
}
catch (AdalException exception)
{
Debug.Write(exception);
}
Trace.WriteLine(" failed to acquire token.");
return false;
}
示例8: DeleteCredentials
/// <summary>
/// Deletes a <see cref="Credential"/> from the storage used by the authentication object.
/// </summary>
/// <param name="targetUri">
/// The uniform resource indicator used to uniquely identify the credentials.
/// </param>
public override void DeleteCredentials(TargetUri targetUri)
{
BaseSecureStore.ValidateTargetUri(targetUri);
Trace.WriteLine("BasicAuthentication::DeleteCredentials");
this.CredentialStore.DeleteCredentials(targetUri);
}
示例9: GetCredentials
/// <summary>
/// Gets a <see cref="Credential"/> from the storage used by the authentication object.
/// </summary>
/// <param name="targetUri">
/// The uniform resource indicator used to uniquely identify the credentials.
/// </param>
/// <param name="credentials">
/// If successful a <see cref="Credential"/> object from the authentication object,
/// authority or storage; otherwise <see langword="null"/>.
/// </param>
/// <returns><see langword="true"/> if successful; otherwise <see langword="false"/>.</returns>
public override bool GetCredentials(TargetUri targetUri, out Credential credentials)
{
BaseSecureStore.ValidateTargetUri(targetUri);
Trace.WriteLine("BasicAuthentication::GetCredentials");
this.CredentialStore.ReadCredentials(targetUri, out credentials);
return credentials != null;
}
示例10: SetCredentials
/// <summary>
/// Sets a <see cref="Credential"/> in the storage used by the authentication object.
/// </summary>
/// <param name="targetUri">
/// The uniform resource indicator used to uniquely identify the credentials.
/// </param>
/// <param name="credentials">The value to be stored.</param>
/// <returns><see langword="true"/> if successful; otherwise <see langword="false"/>.</returns>
public override bool SetCredentials(TargetUri targetUri, Credential credentials)
{
BaseSecureStore.ValidateTargetUri(targetUri);
Credential.Validate(credentials);
Trace.WriteLine("BasicAuthentication::SetCredentials");
this.CredentialStore.WriteCredentials(targetUri, credentials);
return true;
}
示例11: ReadToken
/// <summary>
/// Reads a token from the current user's Visual Studio hive in the Windows Registry.
/// </summary>
/// <param name="targetUri">Key used to select the token.</param>
/// <returns>A <see cref="Token"/> if successful; otherwise <see langword="null"/>.</returns>
public Token ReadToken(TargetUri targetUri)
{
BaseSecureStore.ValidateTargetUri(targetUri);
Token token = null;
foreach (var key in EnumerateKeys(false))
{
if (key == null)
continue;
string url;
string type;
string value;
if (KeyIsValid(key, out url, out type, out value))
{
try
{
Uri tokenUri = new Uri(url);
if (tokenUri.IsBaseOf(targetUri))
{
byte[] data = Convert.FromBase64String(value);
data = ProtectedData.Unprotect(data, null, DataProtectionScope.CurrentUser);
value = Encoding.UTF8.GetString(data);
TokenType tokenType;
if (String.Equals(type, "Federated", StringComparison.OrdinalIgnoreCase))
{
tokenType = TokenType.Federated;
}
else
{
throw new InvalidOperationException("Unexpected token type encountered");
}
token = new Token(value, tokenType);
Git.Trace.WriteLine($"token for '{targetUri}' read from registry.");
return token;
}
}
catch
{
Git.Trace.WriteLine("! token read from registry was corrupt.");
}
}
}
return token;
}
示例12: DeleteCredentials
/// <summary>
/// Deletes a <see cref="Credential"/> from the storage used by the authentication object.
/// </summary>
/// <param name="targetUri">
/// The uniform resource indicator used to uniquely identify the credentials.
/// </param>
public override void DeleteCredentials(TargetUri targetUri)
{
BaseSecureStore.ValidateTargetUri(targetUri);
Credential credentials = null;
if ((credentials = this.PersonalAccessTokenStore.ReadCredentials(targetUri)) != null)
{
this.PersonalAccessTokenStore.DeleteCredentials(targetUri);
Git.Trace.WriteLine($"credentials for '{targetUri}' deleted");
}
}
示例13: UriToName
public static string UriToName(TargetUri targetUri, string @namespace)
{
BaseSecureStore.ValidateTargetUri(targetUri);
if (String.IsNullOrWhiteSpace(@namespace))
throw new ArgumentNullException(@namespace);
string targetName = $"{@namespace}:{targetUri}";
targetName = targetName.TrimEnd('/', '\\');
return targetName;
}
示例14: DeleteToken
/// <summary>
/// Deletes the token for target URI from the token store
/// </summary>
/// <param name="targetUri">The URI of the target for which the token is being deleted</param>
public void DeleteToken(TargetUri targetUri)
{
ValidateTargetUri(targetUri);
Trace.WriteLine("TokenStore::ReadToken");
string targetName = this.GetTargetName(targetUri);
this.Delete(targetName);
_tokenCache.DeleteToken(targetUri);
}
示例15: DeleteCredentials
/// <summary>
/// Deletes credentials for target URI from the credential store
/// </summary>
/// <param name="targetUri">The URI of the target for which credentials are being deleted</param>
public void DeleteCredentials(TargetUri targetUri)
{
ValidateTargetUri(targetUri);
Trace.WriteLine("CredentialStore::DeleteCredentials");
string targetName = this.GetTargetName(targetUri);
this.Delete(targetName);
_credentialCache.DeleteCredentials(targetUri);
}