blob: 861af3f992d2bd30c4fd992cfaa1c28d3430a8b9 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Proton DotNet: Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Proton DotNet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceApache.html">Apache</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid.html">Qpid</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine.html">Engine</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html">Sasl</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client.html">Client</a></li><li class="navelem"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html">SaslAuthenticator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Handles SASL traffic from the proton engine and drives the authentication process for a client connection.
<a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator:</div>
<div class="dyncontent">
<div class="center">
<img src="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.png" usemap="#Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator_map" alt=""/>
<map id="Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator_map" name="Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator_map">
<area href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html" title="Listener for SASL frame arrival to facilitate relevant handling for the SASL authentication of the cl..." alt="Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator" shape="rect" coords="0,0,338,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a67c81c29d9f0f6fbcf2e7932b4514cc4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a67c81c29d9f0f6fbcf2e7932b4514cc4">SaslAuthenticator</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a> credentials)</td></tr>
<tr class="memdesc:a67c81c29d9f0f6fbcf2e7932b4514cc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new SASL Authenticator initialized with the given credentials provider instance. Because no Mechanism selector is given the full set of supported SASL mechanisms will be chosen from when attempting to match one to the server offered SASL mechanisms. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a67c81c29d9f0f6fbcf2e7932b4514cc4">More...</a><br /></td></tr>
<tr class="separator:a67c81c29d9f0f6fbcf2e7932b4514cc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97809187bbd3738e62aebbfd46b794ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a97809187bbd3738e62aebbfd46b794ca">SaslAuthenticator</a> (<a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslMechanismSelector.html">SaslMechanismSelector</a> selector, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a> credentials)</td></tr>
<tr class="memdesc:a97809187bbd3738e62aebbfd46b794ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new client SASL Authenticator with the given Mechanism and client credentials provider instances. The configured Mechanism selector is used when attempting to match a SASL Mechanism with the server offered set of supported SASL mechanisms. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a97809187bbd3738e62aebbfd46b794ca">More...</a><br /></td></tr>
<tr class="separator:a97809187bbd3738e62aebbfd46b794ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a717ee1a8a93234bee6fe42394dc3958d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html">SaslAuthenticator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a717ee1a8a93234bee6fe42394dc3958d">SaslComplete</a> (Action&lt; <a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a> &gt; saslCompleteEventHandler)</td></tr>
<tr class="memdesc:a717ee1a8a93234bee6fe42394dc3958d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a completion handler that will be notified once the SASL exchange has completed. The notification includes the SaslOutcome value which indicates if authentication succeeded or failed. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a717ee1a8a93234bee6fe42394dc3958d">More...</a><br /></td></tr>
<tr class="separator:a717ee1a8a93234bee6fe42394dc3958d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a212fb32b766a3c251f36614b0e6dbe49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html">SaslAuthenticator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a212fb32b766a3c251f36614b0e6dbe49">SaslComplete</a> (Action&lt; <a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a>, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> &gt; saslCompleteEventHandler)</td></tr>
<tr class="memdesc:a212fb32b766a3c251f36614b0e6dbe49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a completion handler that will be notified once the SASL exchange has completed. The notification includes the SaslOutcome value which indicates if authentication succeeded or failed. This handler would also receive a buffer with any additional data sent from the remote. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a212fb32b766a3c251f36614b0e6dbe49">More...</a><br /></td></tr>
<tr class="separator:a212fb32b766a3c251f36614b0e6dbe49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaff22f382784f723a3fab77ec717cff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#aaaff22f382784f723a3fab77ec717cff">HandleSaslMechanisms</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Symbol.html">Symbol</a>[] mechanisms)</td></tr>
<tr class="memdesc:aaaff22f382784f723a3fab77ec717cff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL mechanisms frame has arrived and its effect applied, indicating the offered mechanisms sent by the 'server' peer. The client should respond to the mechanisms event by selecting one from the offered list and use the provided client context to send the chosen mechanism back to the remote server. The caller should ensure that the call to send the chosen mechanism occurs in the same thread as that of this handler call. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#aaaff22f382784f723a3fab77ec717cff">More...</a><br /></td></tr>
<tr class="separator:aaaff22f382784f723a3fab77ec717cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaad612cee63514f6f52359ffacc6bb5e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#aaad612cee63514f6f52359ffacc6bb5e">HandleSaslChallenge</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> challenge)</td></tr>
<tr class="memdesc:aaad612cee63514f6f52359ffacc6bb5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL challenge frame has arrived and its effect applied, indicating the challenge sent by the 'server' peer. The client should respond to the mechanisms event by creating a response buffer and sending it using the context API either immediately or later but using the same thread context as this event arrived in. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#aaad612cee63514f6f52359ffacc6bb5e">More...</a><br /></td></tr>
<tr class="separator:aaad612cee63514f6f52359ffacc6bb5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78224f65d83d7fa239a8d9568983ad29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a78224f65d83d7fa239a8d9568983ad29">HandleSaslOutcome</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context, <a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a> outcome, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> additional)</td></tr>
<tr class="memdesc:a78224f65d83d7fa239a8d9568983ad29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL outcome frame has arrived and its effect applied, indicating the outcome and any success additional data sent by the 'server' peer. The client can consider the SASL negotiations complete following this event. The client should respond appropriately to the outcome whose state can indicate that negotiations have failed and the server has not authenticated the client. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a78224f65d83d7fa239a8d9568983ad29">More...</a><br /></td></tr>
<tr class="separator:a78224f65d83d7fa239a8d9568983ad29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a></td></tr>
<tr class="memitem:a3c3b4836daa7b2e8477e1c6551e47ed8 inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#a3c3b4836daa7b2e8477e1c6551e47ed8">Initialize</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context)</td></tr>
<tr class="memdesc:a3c3b4836daa7b2e8477e1c6551e47ed8 inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called before SASL authentication begins to give the application code a clear point to initialize all the client side expectations. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#a3c3b4836daa7b2e8477e1c6551e47ed8">More...</a><br /></td></tr>
<tr class="separator:a3c3b4836daa7b2e8477e1c6551e47ed8 inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Handles SASL traffic from the proton engine and drives the authentication process for a client connection. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a67c81c29d9f0f6fbcf2e7932b4514cc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67c81c29d9f0f6fbcf2e7932b4514cc4">&#9670;&nbsp;</a></span>SaslAuthenticator() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator.SaslAuthenticator </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a>&#160;</td>
<td class="paramname"><em>credentials</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new SASL Authenticator initialized with the given credentials provider instance. Because no Mechanism selector is given the full set of supported SASL mechanisms will be chosen from when attempting to match one to the server offered SASL mechanisms. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">credentials</td><td>Credentials to use for authentication</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">ArgumentNullException</td><td>If any of the params are null</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a97809187bbd3738e62aebbfd46b794ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97809187bbd3738e62aebbfd46b794ca">&#9670;&nbsp;</a></span>SaslAuthenticator() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator.SaslAuthenticator </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslMechanismSelector.html">SaslMechanismSelector</a>&#160;</td>
<td class="paramname"><em>selector</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a>&#160;</td>
<td class="paramname"><em>credentials</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new client SASL Authenticator with the given Mechanism and client credentials provider instances. The configured Mechanism selector is used when attempting to match a SASL Mechanism with the server offered set of supported SASL mechanisms. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">selector</td><td></td></tr>
<tr><td class="paramname">credentials</td><td>Credentials to use for authentication</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">ArgumentNullException</td><td>If any of the params are null</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aaad612cee63514f6f52359ffacc6bb5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaad612cee63514f6f52359ffacc6bb5e">&#9670;&nbsp;</a></span>HandleSaslChallenge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator.HandleSaslChallenge </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td>
<td class="paramname"><em>challenge</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when a SASL challenge frame has arrived and its effect applied, indicating the challenge sent by the 'server' peer. The client should respond to the mechanisms event by creating a response buffer and sending it using the context API either immediately or later but using the same thread context as this event arrived in. </p>
<p>In the event that the client cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl client context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The client context handling the SASL exchange</td></tr>
<tr><td class="paramname">challenge</td><td>The challenge bytes sent from the server</td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#af7793c4ad3c9552f813e337797c953b5">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="aaaff22f382784f723a3fab77ec717cff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaff22f382784f723a3fab77ec717cff">&#9670;&nbsp;</a></span>HandleSaslMechanisms()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator.HandleSaslMechanisms </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Symbol.html">Symbol</a>[]&#160;</td>
<td class="paramname"><em>mechanisms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when a SASL mechanisms frame has arrived and its effect applied, indicating the offered mechanisms sent by the 'server' peer. The client should respond to the mechanisms event by selecting one from the offered list and use the provided client context to send the chosen mechanism back to the remote server. The caller should ensure that the call to send the chosen mechanism occurs in the same thread as that of this handler call. </p>
<p>In the event that the client cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl client context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The client context handling the SASL exchange</td></tr>
<tr><td class="paramname">mechanisms</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#a840cf62ce603d38ee9a30aa796122470">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="a78224f65d83d7fa239a8d9568983ad29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78224f65d83d7fa239a8d9568983ad29">&#9670;&nbsp;</a></span>HandleSaslOutcome()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator.HandleSaslOutcome </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a>&#160;</td>
<td class="paramname"><em>outcome</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td>
<td class="paramname"><em>additional</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when a SASL outcome frame has arrived and its effect applied, indicating the outcome and any success additional data sent by the 'server' peer. The client can consider the SASL negotiations complete following this event. The client should respond appropriately to the outcome whose state can indicate that negotiations have failed and the server has not authenticated the client. </p>
<p>In the event that the client cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl client context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The client context handling the SASL exchange</td></tr>
<tr><td class="paramname">outcome</td><td>The SASL outcome provided by the server peer</td></tr>
<tr><td class="paramname">additional</td><td>Optional additional data provided by the server</td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#acf93006593e9de730b89018e64f04fa4">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="a717ee1a8a93234bee6fe42394dc3958d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a717ee1a8a93234bee6fe42394dc3958d">&#9670;&nbsp;</a></span>SaslComplete() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html">SaslAuthenticator</a> Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator.SaslComplete </td>
<td>(</td>
<td class="paramtype">Action&lt; <a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a> &gt;&#160;</td>
<td class="paramname"><em>saslCompleteEventHandler</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets a completion handler that will be notified once the SASL exchange has completed. The notification includes the SaslOutcome value which indicates if authentication succeeded or failed. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">saslCompleteEventHandler</td><td>Handler for the SASL complete event</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>This authenticator instance.</dd></dl>
</div>
</div>
<a id="a212fb32b766a3c251f36614b0e6dbe49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a212fb32b766a3c251f36614b0e6dbe49">&#9670;&nbsp;</a></span>SaslComplete() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html">SaslAuthenticator</a> Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator.SaslComplete </td>
<td>(</td>
<td class="paramtype">Action&lt; <a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a>, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> &gt;&#160;</td>
<td class="paramname"><em>saslCompleteEventHandler</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets a completion handler that will be notified once the SASL exchange has completed. The notification includes the SaslOutcome value which indicates if authentication succeeded or failed. This handler would also receive a buffer with any additional data sent from the remote. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">saslCompleteEventHandler</td><td>Handler for the SASL complete event</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>This authenticator instance.</dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/Proton/Engine/Sasl/Client/SaslAuthenticator.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>