summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2009-02-01 21:16:38 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2009-02-01 21:16:38 -0800
commitcb11568e9f265ed675848d8290cad6cb842b7b05 (patch)
treed97007d561ab99a434b79d01fbcabba66e8673f8
parentcab7574242cbd7a054b56ebd322f0cce560de912 (diff)
downloadDotNetOpenAuth-cb11568e9f265ed675848d8290cad6cb842b7b05.zip
DotNetOpenAuth-cb11568e9f265ed675848d8290cad6cb842b7b05.tar.gz
DotNetOpenAuth-cb11568e9f265ed675848d8290cad6cb842b7b05.tar.bz2
Whitespace
-rw-r--r--doc/specs/OAuth Core 1.0.htm4872
-rw-r--r--lib/DotNetOpenId.BuildTasks.targets22
-rw-r--r--lib/DotNetOpenId.xml13064
-rw-r--r--samples/Consumer/Global.asax64
-rw-r--r--samples/Consumer/GoogleAddressBook.aspx90
-rw-r--r--samples/Consumer/SampleWcf.aspx48
-rw-r--r--samples/Consumer/TracePage.aspx36
-rw-r--r--samples/ConsumerWpf/App.xaml16
-rw-r--r--samples/ConsumerWpf/Properties/Resources.resx232
-rw-r--r--samples/ConsumerWpf/Properties/Settings.settings12
-rw-r--r--samples/ServiceProvider/App_Code/DataClasses.dbml88
-rw-r--r--samples/ServiceProvider/App_Code/DataClasses.dbml.layout100
-rw-r--r--samples/ServiceProvider/DataApi.svc2
-rw-r--r--samples/ServiceProvider/Login.aspx28
-rw-r--r--samples/ServiceProvider/Members/Authorize.aspx64
-rw-r--r--samples/ServiceProvider/Members/AuthorizedConsumers.aspx14
-rw-r--r--samples/ServiceProvider/Members/Logoff.aspx16
-rw-r--r--samples/ServiceProvider/Members/Web.config16
-rw-r--r--samples/ServiceProvider/TracePage.aspx36
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/dhpriv.txt58
-rw-r--r--src/DotNetOpenAuth.Test/Settings.StyleCop94
-rw-r--r--src/DotNetOpenAuth/Messaging/Bindings/Bindings.cd150
-rw-r--r--src/DotNetOpenAuth/Messaging/Exceptions.cd64
-rw-r--r--src/DotNetOpenAuth/OAuth/ChannelElements/IConsumerCertificateProvider.cs46
-rw-r--r--src/DotNetOpenAuth/OAuth/ChannelElements/RsaSha1SigningBindingElement.cs228
-rw-r--r--src/DotNetOpenAuth/OAuth/ClassDiagram.cd90
-rw-r--r--src/DotNetOpenAuth/OAuth/Messages/OAuth Messages.cd326
-rw-r--r--src/DotNetOpenAuth/OAuth/OAuthStrings.Designer.cs306
-rw-r--r--src/DotNetOpenAuth/OAuth/OAuthStrings.resx298
-rw-r--r--tools/Sandcastle/Presentation/vs2005/Content/feedBack_content.xml58
-rw-r--r--tools/Sandcastle/Presentation/vs2005/Content/shared_content.xml490
31 files changed, 10514 insertions, 10514 deletions
diff --git a/doc/specs/OAuth Core 1.0.htm b/doc/specs/OAuth Core 1.0.htm
index 6a9857e..eab3602 100644
--- a/doc/specs/OAuth Core 1.0.htm
+++ b/doc/specs/OAuth Core 1.0.htm
@@ -1,2438 +1,2438 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
-<title>OAuth Core 1.0</title>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="description" content="OAuth Core 1.0">
-<style type="text/css">
- body {
- font-family: "lucida grande", verdana, arial, helvetica, sans-serif;
- font-size: 83%; color: #000; background-color: #FFF;
- margin: 2em;
- }
- h1, h2, h3, h4, h5, h6 {
- font-family: helvetica neue, arial, "MS Sans Serif", sans-serif;
- font-weight: bold; font-style: normal;
- }
- h1 { color: #111; background-color: transparent; padding-bottom: 2px; border-bottom: 4px solid #efefef; }
- h3 { color: #333; background-color: transparent; }
-
-
- td.header {
- font-family: arial, helvetica, sans-serif; font-size: x-small;
- vertical-align: top; width: 33%;
- color: #FFF; background-color: #666;
- }
- td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
- td.author-text { font-size: x-small; }
-
- /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
- a.info {
- /* This is the key. */
- position: relative;
- z-index: 24;
- }
- a.info:hover {
- z-index: 25;
- color: #FFF; background-color: #369;
- text-decoration: none;
- }
- a.info span { display: none; }
- a.info:hover span.info {
- /* The span will display just on :hover state. */
- display: block;
- position: absolute;
- font-size: smaller;
- top: 2em; left: -5em; width: 15em;
- padding: 2px; border: 1px solid #333;
- color: #369; background-color: #EEE;
- text-align: left;
- }
-
- a { font-weight: bold; }
- a:link { color: #369; background-color: transparent; }
- a:visited { color: #666; background-color: transparent; }
- a:active { color: #888; background-color: transparent; }
-
- p { margin-left: 2em; margin-right: 2em; }
- p.copyright { font-size: x-small; }
- p.toc { font-size: small; font-weight: bold; margin-left: 3em; }
- table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
- td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }
-
- ol.text { margin-left: 1em; margin-right: 2em; }
- ul.text { margin-left: 1em; margin-right: 2em; }
- li { margin-left: 1em; padding-left: 1.2em; }
-
- /* RFC-2629 <spanx>s and <artwork>s. */
- em { font-style: italic; }
- strong { font-weight: bold; }
- dfn { font-weight: bold; font-style: normal; }
- cite { font-weight: normal; font-style: normal; }
- tt { color: #036; }
- tt, pre, pre dfn, pre em, pre cite, pre span {
- font-family: "Courier New", Courier, monospace; font-size: small;
- }
- pre {
- text-align: left; padding: 4px;
- color: #000; background-color: #f7f7f7;
- width: auto;
- }
- pre dfn { color: #369; }
- pre em { color: #66F; background-color: #FFC; font-weight: normal; }
- pre .key { color: #33C; font-weight: bold; }
- pre .id { color: #369; }
- pre .str { color: #000; background-color: #CFF; }
- pre .val { color: #066; }
- pre .rep { color: #909; }
- pre .oth { color: #000; background-color: #FCF; }
- pre .err { background-color: #FCC; }
-
- /* RFC-2629 <texttable>s. */
- table.all, table.full, table.headers, table.none {
- font-size: small; text-align: center; border-width: 2px;
- vertical-align: top; border-collapse: collapse;
- }
- table.all, table.full { border-style: solid; border-color: black; }
- table.headers, table.none { border-style: none; }
- th {
- font-weight: bold; border-color: #000;
- border-width: 2px 2px 3px 2px;
- }
- table.all th, table.full th { border-style: solid; }
- table.headers th { border-style: none none solid none; }
- table.none th { border-style: none; }
- table.all td {
- border-style: solid; border-color: #333;
- border-width: 1px 2px;
- }
- table.full td, table.headers td, table.none td { border-style: none; }
-
- hr { height: 1px; border:1px solid #e7e7e7; background-color:#e7e7e7;}
- hr.insert {
- width: 80%; border-style: none; border-width: 0;
- color: #CCC; background-color: #CCC;
- }
-</style>
-</head><body>
-<p><span style="float: right;">December 4, 2007</span></p>
-
-<h1><br>OAuth Core 1.0</h1>
-
-<h3>Abstract</h3>
-
-<p>
- The OAuth protocol enables websites or applications (Consumers) to
- access Protected Resources from a web service (Service Provider) via an
- API, without requiring Users to disclose their Service Provider
- credentials to the Consumers. More generally, OAuth creates a
- freely-implementable and generic methodology for API authentication.
-
-</p>
-
-<p>
- An example use case is allowing printing service printer.example.com
- (the Consumer), to access private photos stored on photos.example.net
- (the Service Provider) without requiring Users to provide their
- photos.example.net credentials to printer.example.com.
-
-</p>
-
-<p>
- OAuth does not require a specific user interface or interaction
- pattern, nor does it specify how Service Providers authenticate Users,
- making the protocol ideally suited for cases where authentication
- credentials are unavailable to the Consumer, such as with OpenID.
-
-</p>
-
-<p>
- OAuth aims to unify the experience and implementation of delegated web
- service authentication into a single, community-driven protocol. OAuth
- builds on existing protocols and best practices that have been
- independently implemented by various websites. An open standard,
- supported by large and small providers alike, promotes a consistent and
- trusted experience for both application developers and the users of
- those applications.
-
-</p><a name="toc"></a><br><hr>
-<h3>Table of Contents</h3>
-<p class="toc">
-<a href="#anchor1">1.</a>&nbsp;
-Authors<br>
-<a href="#anchor2">2.</a>&nbsp;
-Notation and Conventions<br>
-<a href="#anchor3">3.</a>&nbsp;
-Definitions<br>
-<a href="#anchor4">4.</a>&nbsp;
-Documentation and Registration<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#request_urls">4.1.</a>&nbsp;
-Request URLs<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">4.2.</a>&nbsp;
-Service Providers<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor6">4.3.</a>&nbsp;
-Consumers<br>
-<a href="#anchor7">5.</a>&nbsp;
-Parameters<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#encoding_parameters">5.1.</a>&nbsp;
-Parameter Encoding<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#consumer_req_param">5.2.</a>&nbsp;
-Consumer Request Parameters<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#response_parameters">5.3.</a>&nbsp;
-Service Provider Response Parameters<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_header">5.4.</a>&nbsp;
-OAuth HTTP Authorization Scheme<br>
-<a href="#anchor9">6.</a>&nbsp;
-Authenticating with OAuth<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_step1">6.1.</a>&nbsp;
-Obtaining an Unauthorized Request Token<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_step2">6.2.</a>&nbsp;
-Obtaining User Authorization<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_step3">6.3.</a>&nbsp;
-Obtaining an Access Token<br>
-<a href="#anchor13">7.</a>&nbsp;
-Accessing Protected Resources<br>
-<a href="#nonce">8.</a>&nbsp;
-Nonce and Timestamp<br>
-<a href="#signing_process">9.</a>&nbsp;
-Signing Requests<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">9.1.</a>&nbsp;
-Signature Base String<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor16">9.2.</a>&nbsp;
-HMAC-SHA1<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor19">9.3.</a>&nbsp;
-RSA-SHA1<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor22">9.4.</a>&nbsp;
-PLAINTEXT<br>
-<a href="#http_codes">10.</a>&nbsp;
-HTTP Response Codes<br>
-<a href="#anchor25">Appendix&nbsp;A.</a>&nbsp;
-Appendix A - Protocol Example<br>
-<a href="#anchor26">Appendix&nbsp;A.1.</a>&nbsp;
-Documentation and Registration<br>
-<a href="#anchor27">Appendix&nbsp;A.2.</a>&nbsp;
-Obtaining a Request Token<br>
-<a href="#anchor28">Appendix&nbsp;A.3.</a>&nbsp;
-Requesting User Authorization<br>
-<a href="#anchor29">Appendix&nbsp;A.4.</a>&nbsp;
-Obtaining an Access Token<br>
-<a href="#anchor30">Appendix&nbsp;A.5.</a>&nbsp;
-Accessing Protected Resources<br>
-<a href="#anchor33">Appendix&nbsp;B.</a>&nbsp;
-Security Considerations<br>
-<a href="#anchor34">Appendix&nbsp;B.1.</a>&nbsp;
-Credentials and Token Exchange<br>
-<a href="#anchor35">Appendix&nbsp;B.2.</a>&nbsp;
-PLAINTEXT Signature Method<br>
-<a href="#anchor36">Appendix&nbsp;B.3.</a>&nbsp;
-Confidentiality of Requests<br>
-<a href="#anchor37">Appendix&nbsp;B.4.</a>&nbsp;
-Spoofing by Counterfeit Servers<br>
-<a href="#anchor38">Appendix&nbsp;B.5.</a>&nbsp;
-Proxying and Caching of Authenticated Content<br>
-<a href="#anchor39">Appendix&nbsp;B.6.</a>&nbsp;
-Plaintext Storage of Credentials<br>
-<a href="#anchor40">Appendix&nbsp;B.7.</a>&nbsp;
-Secrecy of the Consumer Secret<br>
-<a href="#anchor41">Appendix&nbsp;B.8.</a>&nbsp;
-Phishing Attacks<br>
-<a href="#anchor42">Appendix&nbsp;B.9.</a>&nbsp;
-Scoping of Access Requests<br>
-<a href="#anchor43">Appendix&nbsp;B.10.</a>&nbsp;
-Entropy of Secrets<br>
-<a href="#anchor44">Appendix&nbsp;B.11.</a>&nbsp;
-Denial of Service / Resource Exhaustion Attacks<br>
-<a href="#anchor45">Appendix&nbsp;B.12.</a>&nbsp;
-Cryptographic Attacks<br>
-<a href="#anchor46">Appendix&nbsp;B.13.</a>&nbsp;
-Signature Base String Compatibility<br>
-<a href="#rfc.references1">11.</a>&nbsp;
-References<br>
-<a href="#rfc.authors">§</a>&nbsp;
-Author’s Address<br>
-</p>
-
-<p><br clear="all"></p>
-
-<p><a name="anchor1"></a><br></p><hr>
-
-<p><a name="rfc.section.1"></a></p><h3>1.&nbsp;
-Authors</h3>
-
-<ul>
- <li><span class="vcard"><span class="fn">Mark Atwood</span> (<span class="email">me@mark.atwood.name</span>)</span></li>
- <li><span class="vcard"><span class="fn">Richard M. Conlan</span> (<span class="email">zeveck@google.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Blaine Cook</span> (<span class="email">blaine@twitter.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Leah Culver</span> (<span class="email">leah@pownce.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Kellan Elliott-McCrea</span> (<span class="email">kellan@flickr.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Larry Halff</span> (<span class="email">larry@ma.gnolia.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Eran Hammer-Lahav</span> (<span class="email">eran@hueniverse.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Ben Laurie</span> (<span class="email">benl@google.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Chris Messina</span> (<span class="email">chris@citizenagency.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">John Panzer</span> (<span class="email">jpanzer@acm.org</span>)</span></li>
- <li><span class="vcard"><span class="fn">Sam Quigley</span> (<span class="email">quigley@emerose.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">David Recordon</span> (<span class="email">david@sixapart.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Eran Sandler</span> (<span class="email">eran@yedda.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Jonathan Sergent</span> (<span class="email">sergent@google.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Todd Sieling</span> (<span class="email">todd@ma.gnolia.com</span>)</span></li>
- <li><span class="vcard"><span class="fn">Brian Slesinsky</span> (<span class="email">brian-oauth@slesinsky.org</span>)</span></li>
- <li><span class="vcard"><span class="fn">Andy Smith</span> (<span class="email">andy@jaiku.com</span>)</span></li>
-</ul>
-
-<p><a name="anchor2"></a><br></p><hr>
-
-<p><a name="rfc.section.2"></a></p><h3>2.&nbsp;
-Notation and Conventions</h3>
-
-<p>
- The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
- “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this
- document are to be interpreted as described in <a class="info" href="#RFC2119">[RFC2119]<span> (</span><span class="info">Bradner, B., “Key words for use in RFCs to Indicate Requirement Levels,” .</span><span>)</span></a>.
- Domain name examples use <a class="info" href="#RFC2606">[RFC2606]<span> (</span><span class="info">Eastlake, D. and A. Panitz, “Reserved Top Level DNS Names,” .</span><span>)</span></a>.
-
-</p>
-
-<p><a name="anchor3"></a><br></p><hr>
-
-<p><a name="rfc.section.3"></a></p><h3>3.&nbsp;
-Definitions</h3>
-
-<p>
- </p>
-<blockquote class="text"><dl>
-<dt>Service Provider:</dt>
-<dd>
- A web application that allows access via OAuth.
-
-</dd>
-<dt>User:</dt>
-<dd>
- An individual who has an account with the Service Provider.
-
-</dd>
-<dt>Consumer:</dt>
-<dd>
- A website or application that uses OAuth to access the Service
- Provider on behalf of the User.
-
-</dd>
-<dt>Protected Resource(s):</dt>
-<dd>
- Data controlled by the Service Provider, which the Consumer can
- access through authentication.
-
-</dd>
-<dt>Consumer Developer:</dt>
-<dd>
- An individual or organization that implements a Consumer.
-
-</dd>
-<dt>Consumer Key:</dt>
-<dd>
- A value used by the Consumer to identify itself to the Service
- Provider.
-
-</dd>
-<dt>Consumer Secret:</dt>
-<dd>
- A secret used by the Consumer to establish ownership of the
- Consumer Key.
-
-</dd>
-<dt>Request Token:</dt>
-<dd>
- A value used by the Consumer to obtain authorization from the User,
- and exchanged for an Access Token.
-
-</dd>
-<dt>Access Token:</dt>
-<dd>
- A value used by the Consumer to gain access to the Protected
- Resources on behalf of the User, instead of using the User’s
- Service Provider credentials.
-
-</dd>
-<dt>Token Secret:</dt>
-<dd>
- A secret used by the Consumer to establish ownership of a given
- Token.
-
-</dd>
-<dt>OAuth Protocol Parameters:</dt>
-<dd>
- Parameters with names beginning with <tt>oauth_</tt>.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p><a name="anchor4"></a><br></p><hr>
-
-<p><a name="rfc.section.4"></a></p><h3>4.&nbsp;
-Documentation and Registration</h3>
-
-<p>
- OAuth includes a Consumer Key and matching Consumer Secret that
- together authenticate the Consumer (as opposed to the User) to the
- Service Provider. Consumer-specific identification allows the Service
- Provider to vary access levels to Consumers (such as un-throttled access
- to resources).
-
-</p>
-
-<p>
- Service Providers SHOULD NOT rely on the Consumer Secret as a method to
- verify the Consumer identity, unless the Consumer Secret is known to be
- inaccessible to anyone other than the Consumer and the Service
- Provider. The Consumer Secret MAY be an empty string (for example when
- no Consumer verification is needed, or when verification is achieved
- through other means such as RSA).
-
-</p>
-
-<p><a name="request_urls"></a><br></p><hr>
-
-<p><a name="rfc.section.4.1"></a></p><h3>4.1.&nbsp;
-Request URLs</h3>
-
-<p>
- OAuth defines three request URLs:
-
- </p>
-<blockquote class="text"><dl>
-<dt>Request Token URL:</dt>
-<dd>
- The URL used to obtain an unauthorized Request Token, described
- in <a class="info" href="#auth_step1">Section&nbsp;6.1<span> (</span><span class="info">Obtaining an Unauthorized Request Token</span><span>)</span></a>.
-
-</dd>
-<dt>User Authorization URL:</dt>
-<dd>
- The URL used to obtain User authorization for Consumer access,
- described in <a class="info" href="#auth_step2">Section&nbsp;6.2<span> (</span><span class="info">Obtaining User Authorization</span><span>)</span></a>.
-
-</dd>
-<dt>Access Token URL:</dt>
-<dd>
- The URL used to exchange the User-authorized Request Token for
- an Access Token, described in <a class="info" href="#auth_step3">Section&nbsp;6.3<span> (</span><span class="info">Obtaining an Access Token</span><span>)</span></a>.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- The three URLs MUST include scheme, authority, and path, and MAY
- include query and fragment as defined by <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a>
- section 3. The request URL query MUST NOT contain any OAuth Protocol
- Parameters. For example:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://sp.example.com/authorize
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor5"></a><br></p><hr>
-
-<p><a name="rfc.section.4.2"></a></p><h3>4.2.&nbsp;
-Service Providers</h3>
-
-<p>
- The Service Provider’s responsibility is to enable Consumer Developers
- to establish a Consumer Key and Consumer Secret. The process and
- requirements for provisioning these are entirely up to the Service
- Providers.
-
-</p>
-
-<p>
- The Service Provider’s documentation includes:
-
- </p>
-<ol class="text">
-<li>
- The <a class="info" href="#request_urls">URLs<span> (</span><span class="info">Request URLs</span><span>)</span></a> the Consumer will
- use when making OAuth requests, and the HTTP methods (i.e. GET,
- POST, etc.) used in the Request Token URL and Access Token URL.
-
-</li>
-<li>
- Signature methods supported by the Service Provider.
-
-</li>
-<li>
- Any additional request parameters that the Service Provider
- requires in order to obtain a Token. Service Provider specific
- parameters MUST NOT begin with <tt>oauth_</tt>.
-
-</li>
-</ol><p>
-
-</p>
-
-<p><a name="anchor6"></a><br></p><hr>
-
-<p><a name="rfc.section.4.3"></a></p><h3>4.3.&nbsp;
-Consumers</h3>
-
-<p>
- The Consumer Developer MUST establish a Consumer Key and a Consumer
- Secret with the Service Provider. The Consumer Developer MAY also be
- required to provide additional information to the Service Provider
- upon registration.
-
-</p>
-
-<p><a name="anchor7"></a><br></p><hr>
-
-<p><a name="rfc.section.5"></a></p><h3>5.&nbsp;
-Parameters</h3>
-
-<p>
- OAuth Protocol Parameter names and values are case sensitive. Each
- OAuth Protocol Parameters MUST NOT appear more than once per request,
- and are REQUIRED unless otherwise noted.
-
-</p>
-
-<p><a name="encoding_parameters"></a><br></p><hr>
-
-<p><a name="rfc.section.5.1"></a></p><h3>5.1.&nbsp;
-Parameter Encoding</h3>
-
-<p>
- All parameter names and values are escaped using the
- <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> percent-encoding (%xx) mechanism.
- Characters not in the unreserved character set
- (<a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> section 2.3) MUST be encoded. Characters
- in the unreserved character set MUST NOT be encoded. Hexadecimal
- characters in encodings MUST be upper case. Text names and values
- MUST be encoded as UTF-8 octets before percent-encoding them per
- <a class="info" href="#RFC3629">[RFC3629]<span> (</span><span class="info">Yergeau, F., “UTF-8, a transformation format of Unicode and ISO 10646,” .</span><span>)</span></a>.
-
-</p><div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> unreserved = ALPHA, DIGIT, '-', '.', '_', '~'
-</pre></div>
-<a name="consumer_req_param"></a><br><hr>
-
-<a name="rfc.section.5.2"></a><h3>5.2.&nbsp;
-Consumer Request Parameters</h3>
-
-<p>
- OAuth Protocol Parameters are sent from the Consumer to the Service
- Provider in one of three methods, in order of decreasing preference:
- </p>
-<ol class="text">
-<li>
- In the HTTP <tt>Authorization</tt> header as defined in
- <a class="info" href="#auth_header">OAuth HTTP Authorization Scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a>.
-
-</li>
-<li>
- As the HTTP POST request body with a <tt>
- content-type
- </tt> of
- <tt>application/x-www-form-urlencoded</tt>.
-
-</li>
-<li>
- Added to the URLs in the query part (as defined by
- <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> section 3).
-
-</li>
-</ol><p>
-
-</p>
-
-<p>
- In addition to these defined methods, future extensions may describe
- alternate methods for sending the OAuth Protocol Parameters.
- The methods for sending other request parameters are left
- undefined, but SHOULD NOT use the
- <a class="info" href="#auth_header">OAuth HTTP Authorization Scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a> header.
-
-</p>
-
-<p><a name="response_parameters"></a><br></p><hr>
-
-<p><a name="rfc.section.5.3"></a></p><h3>5.3.&nbsp;
-Service Provider Response Parameters</h3>
-
-<p>
- Response parameters are sent by the Service
- Provider to return Tokens and other information to the Consumer in
- the HTTP response body. The parameter names and values are first
- encoded as per <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>, and concatenated with the ‘&amp;’ character (ASCII code 38)
- as defined in <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> Section 2.1. For example:
-
-</p><div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> oauth_token=ab3cd9j4ks73hf7g&amp;oauth_token_secret=xyz4992k83j47x0b
-</pre></div>
-<a name="auth_header"></a><br><hr>
-
-<a name="rfc.section.5.4"></a><h3>5.4.&nbsp;
-OAuth HTTP Authorization Scheme</h3>
-
-<p>
- This section defines an <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
-J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
-A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
-Authentication,” .</span><span>)</span></a> extension to
- support OAuth. It uses the standard HTTP <tt>Authorization</tt> and
- <tt>WWW-Authenticate</tt> headers to pass OAuth Protocol Parameters.
-
-</p>
-
-<p>
- It is RECOMMENDED that Service Providers accept the HTTP
- <tt>Authorization</tt> header. Consumers SHOULD be able to send OAuth
- Protocol Parameters in the OAuth <tt>Authorization</tt> header.
-
-</p>
-
-<p>
- The extension auth-scheme (as defined by
- <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
-J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
-A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
-Authentication,” .</span><span>)</span></a>) is <tt>OAuth</tt> and is case-insensitive.
-
-</p>
-
-<p><a name="auth_header_authorization"></a><br></p><hr>
-
-<p><a name="rfc.section.5.4.1"></a></p><h3>5.4.1.&nbsp;
-Authorization Header</h3>
-
-<p>
- The OAuth Protocol Parameters are sent in the <tt>Authorization</tt>
- header the following way:
-
- </p>
-<ol class="text">
-<li>
- Parameter names and values are encoded per
- <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>.
-
-</li>
-<li>
- For each parameter, the name is immediately followed by an ‘=’
- character (ASCII code 61), a ‘”’ character (ASCII code 34), the
- parameter value (MAY be empty), and another ‘”’ character
- (ASCII code 34).
-
-</li>
-<li>
- Parameters are separated by a comma character (ASCII code 44)
- and OPTIONAL linear whitespace per <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
-J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
-A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
-Authentication,” .</span><span>)</span></a>.
-
-</li>
-<li>
- The OPTIONAL <tt>realm</tt> parameter is added and interpreted per
- <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
-J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
-A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
-Authentication,” .</span><span>)</span></a>, section 1.2.
-
-</li>
-</ol><p>
-
-</p>
-
-<p>
- For example:
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> Authorization: OAuth realm="http://sp.example.com/",
- oauth_consumer_key="0685bd9184jfhq22",
- oauth_token="ad180jjd733klru7",
- oauth_signature_method="HMAC-SHA1",
- oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
- oauth_timestamp="137131200",
- oauth_nonce="4572616e48616d6d65724c61686176",
- oauth_version="1.0"
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor8"></a><br></p><hr>
-
-<p><a name="rfc.section.5.4.2"></a></p><h3>5.4.2.&nbsp;
-WWW-Authenticate Header</h3>
-
-<p>
- Service Providers MAY indicate their support for the extension by
- returning the OAuth HTTP <tt>WWW-Authenticate</tt>
- header upon Consumer requests for Protected Resources. As per
- <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
-J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
-A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
-Authentication,” .</span><span>)</span></a> such a response MAY include additional
- HTTP <tt>WWW-Authenticate</tt> headers:
-
-</p>
-
-<p>
- For example:
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> WWW-Authenticate: OAuth realm="http://sp.example.com/"
-</pre></div><p>
-
-
-</p>
-
-<p>
- The realm parameter defines a protection realm per
- <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
-J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
-A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
-Authentication,” .</span><span>)</span></a>, section 1.2.
-
-</p>
-
-<p><a name="anchor9"></a><br></p><hr>
-
-<p><a name="rfc.section.6"></a></p><h3>6.&nbsp;
-Authenticating with OAuth</h3>
-
-<p>
- OAuth authentication is the process in which Users grant access to
- their Protected Resources without sharing their credentials with the
- Consumer. OAuth uses Tokens generated by the Service Provider instead
- of the User’s credentials in Protected Resources requests. The process
- uses two Token types:
-
- </p>
-<blockquote class="text"><dl>
-<dt>Request Token:</dt>
-<dd>
- Used by the Consumer to ask the User to authorize access to the
- Protected Resources. The User-authorized Request Token is exchanged
- for an Access Token, MUST only be used once, and MUST NOT be used
- for any other purpose. It is RECOMMENDED that Request Tokens have
- a limited lifetime.
-
-</dd>
-<dt>Access Token:</dt>
-<dd>
- Used by the Consumer to access the Protected Resources on behalf of
- the User. Access Tokens MAY limit access to certain Protected
- Resources, and MAY have a limited lifetime. Service Providers
- SHOULD allow Users to revoke Access Tokens. Only the Access Token
- SHALL be used to access the Protect Resources.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- OAuth Authentication is done in three steps:
-
- </p>
-<ol class="text">
-<li>
- The Consumer obtains an unauthorized Request Token.
-
-</li>
-<li>
- The User authorizes the Request Token.
-
-</li>
-<li>
- The Consumer exchanges the Request Token for an Access Token.
-
-</li>
-</ol><p>
-
-</p>
-
-<p><img src="OAuth%20Core%201.0_files/diagram.png" alt=""></p>
-<a name="auth_step1"></a><br><hr>
-
-<a name="rfc.section.6.1"></a><h3>6.1.&nbsp;
-Obtaining an Unauthorized Request Token</h3>
-
-<p>
- The Consumer obtains an unauthorized Request Token by asking the
- Service Provider to issue a Token. The Request Token’s sole purpose
- is to receive User approval and can only be used to obtain an Access
- Token. The Request Token process goes as follows:
-
-</p>
-
-<p><a name="obtain_request_token"></a><br></p><hr>
-
-<p><a name="rfc.section.6.1.1"></a></p><h3>6.1.1.&nbsp;
-Consumer Obtains a Request Token</h3>
-
-<p>
- To obtain a Request Token, the Consumer sends an HTTP request to
- the Service Provider’s Request Token URL. The Service Provider
- documentation specifies the HTTP method for this request, and HTTP POST
- is RECOMMENDED. The request MUST be signed and contains the following parameters:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_consumer_key:</dt>
-<dd>
- The Consumer Key.
-
-</dd>
-<dt>oauth_signature_method:</dt>
-<dd>
- The signature method the Consumer used to sign the request.
-
-</dd>
-<dt>oauth_signature:</dt>
-<dd>
- The signature as defined in
- <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_timestamp:</dt>
-<dd>
- As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_nonce:</dt>
-<dd>
- As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_version:</dt>
-<dd>
- OPTIONAL. If present, value MUST be <tt>
- 1.0
- </tt>. Service Providers
- MUST assume the protocol version to be <tt>1.0</tt> if this parameter
- is not present. Service Providers’ response to non-<tt>1.0</tt> value
- is left undefined.
-
-</dd>
-<dt>Additional parameters:</dt>
-<dd>
- Any additional parameters, as defined by the Service Provider.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p><a name="request_grant"></a><br></p><hr>
-
-<p><a name="rfc.section.6.1.2"></a></p><h3>6.1.2.&nbsp;
-Service Provider Issues an Unauthorized Request Token</h3>
-
-<p>
- The Service Provider verifies the signature and Consumer Key. If
- successful, it generates a Request Token and Token Secret and
- returns them to the Consumer in the HTTP response body as defined
- in <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
- The Service Provider MUST ensure the Request
- Token cannot be exchanged for an Access Token until the User
- successfully grants access in <a class="info" href="#auth_step2">Obtaining
- User Authorization<span> (</span><span class="info">Obtaining User Authorization</span><span>)</span></a>.
-
-</p>
-
-<p>
- The response contains the following parameters:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_token:</dt>
-<dd>
- The Request Token.
-
-</dd>
-<dt>oauth_token_secret:</dt>
-<dd>
- The Token Secret.
-
-</dd>
-<dt>Additional parameters:</dt>
-<dd>
- Any additional parameters, as defined by the Service Provider.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- If the request fails verification or is rejected for other reasons,
- the Service Provider SHOULD respond with the appropriate response
- code as defined in <a class="info" href="#http_codes">HTTP Response Codes<span> (</span><span class="info">HTTP Response Codes</span><span>)</span></a>.
- The Service Provider MAY include some further details about why the
- request was rejected in the HTTP response body as defined in
- <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
-
-</p>
-
-<p><a name="auth_step2"></a><br></p><hr>
-
-<p><a name="rfc.section.6.2"></a></p><h3>6.2.&nbsp;
-Obtaining User Authorization</h3>
-
-<p>
- The Consumer cannot use the Request Token until it has been
- authorized by the User. Obtaining User authorization includes
- the following steps:
-
-</p>
-
-<p><a name="user_auth_redirected"></a><br></p><hr>
-
-<p><a name="rfc.section.6.2.1"></a></p><h3>6.2.1.&nbsp;
-Consumer Directs the User to the Service Provider</h3>
-
-<p>
- In order for the Consumer to be able to exchange the Request Token
- for an Access Token, the Consumer MUST obtain approval from the
- User by directing the User to the Service Provider. The Consumer
- constructs an HTTP GET request to the Service Provider’s
- User Authorization URL with the following parameter:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_token:</dt>
-<dd>
- OPTIONAL. The Request Token obtained in the previous step. The
- Service Provider MAY declare this parameter as REQUIRED, or
- accept requests to the User Authorization URL without it, in
- which case it will prompt the User to enter it manually.
-
-</dd>
-<dt>oauth_callback:</dt>
-<dd>
- OPTIONAL. The Consumer MAY specify a URL the Service Provider
- will use to redirect the User back to the Consumer when
- <a class="info" href="#auth_step2">Obtaining User Authorization<span> (</span><span class="info">Obtaining User Authorization</span><span>)</span></a>
- is complete.
-
-</dd>
-<dt>Additional parameters:</dt>
-<dd>
- Any additional parameters, as defined by the Service Provider.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- Once the request URL has been constructed the Consumer redirects
- the User to the URL via the User’s web browser. If the Consumer is
- incapable of automatic HTTP redirection, the Consumer SHALL notify
- the User how to manually go to the constructed request URL.
-
-</p>
-
-<p>
- Note: If a Service Provider knows a Consumer to be running on a
- mobile device or set-top box, the Service Provider SHOULD ensure
- that the User Authorization URL and Request Token are suitable
- for manual entry.
-
-</p>
-
-<p><a name="anchor10"></a><br></p><hr>
-
-<p><a name="rfc.section.6.2.2"></a></p><h3>6.2.2.&nbsp;
-Service Provider Authenticates the User and Obtains Consent</h3>
-
-<p>
- The Service Provider verifies the User’s identity and asks for
- consent as detailed. OAuth does not specify how the Service Provider
- authenticates the User. However, it does define a set of REQUIRED
- steps:
-
- </p>
-<ul class="text">
-<li>
- The Service Provider MUST first verify the User’s identity
- before asking for consent. It MAY prompt the User to sign
- in if the User has not already done so.
-
-</li>
-<li>
- The Service Provider presents to the User information about the
- Consumer requesting access (as registered by the Consumer
- Developer). The information includes the duration of the
- access and the Protected Resources provided. The information
- MAY include other details specific to the Service Provider.
-
-</li>
-<li>
- The User MUST grant or deny permission for the Service Provider
- to give the Consumer access to the Protected Resources on
- behalf of the User. If the User denies the Consumer access, the
- Service Provider MUST NOT allow access to the Protected
- Resources.
-
-</li>
-</ul><p>
-
-</p>
-
-<p>
- When displaying any identifying information about the Consumer to
- the User based on the Consumer Key, the Service Provider MUST
- inform the User if it is unable to assure the Consumer’s true
- identity. The method in which the Service Provider informs the User
- and the quality of the identity assurance is beyond the scope of
- this specification.
-
-</p>
-
-<p><a name="anchor11"></a><br></p><hr>
-
-<p><a name="rfc.section.6.2.3"></a></p><h3>6.2.3.&nbsp;
-Service Provider Directs the User Back to the Consumer</h3>
-
-<p>
- After the User authenticates with the Service Provider and grants
- permission for Consumer access, the Consumer MUST be notified that
- the Request Token has been authorized and ready to be exchanged for
- an Access Token. If the User denies access, the Consumer MAY be
- notified that the Request Token has been revoked.
-
-</p>
-
-<p>
- If the Consumer provided a callback URL in <tt>oauth_callback</tt> (as
- described in <a class="info" href="#user_auth_redirected">Consumer Directs the User to the Service Provider<span> (</span><span class="info">Consumer Directs the User to the Service Provider</span><span>)</span></a>),
- the Service Provider constructs an HTTP GET request URL, and
- redirects the User’s web browser to that URL with the following
- parameters:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_token:</dt>
-<dd>
- The Request Token the User authorized or denied.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- The callback URL MAY include Consumer provided query parameters.
- The Service Provider MUST retain them unmodified and append the
- <tt>oauth_token</tt> parameter to the existing query.
-
-</p>
-
-<p>
- If no callback URL was provided, the Service Provider instructs
- the User to manually inform the Consumer that authorization has
- completed.
-
-</p>
-
-<p><a name="auth_step3"></a><br></p><hr>
-
-<p><a name="rfc.section.6.3"></a></p><h3>6.3.&nbsp;
-Obtaining an Access Token</h3>
-
-<p>
- The Consumer exchanges the Request Token for an Access Token capable
- of accessing the Protected Resources. Obtaining an Access Token
- includes the following steps:
-
-</p>
-
-<p><a name="anchor12"></a><br></p><hr>
-
-<p><a name="rfc.section.6.3.1"></a></p><h3>6.3.1.&nbsp;
-Consumer Requests an Access Token</h3>
-
-<p>
- The Request Token and Token Secret MUST be exchanged for an Access
- Token and Token Secret.
-
-</p>
-
-<p>
- To request an Access Token, the Consumer makes an HTTP request to
- the Service Provider’s Access Token URL. The Service Provider
- documentation specifies the HTTP method for this request, and HTTP POST
- is RECOMMENDED. The request MUST be signed per
- <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>,
- and contains the following parameters:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_consumer_key:</dt>
-<dd>
- The Consumer Key.
-
-</dd>
-<dt>oauth_token:</dt>
-<dd>
- The Request Token obtained previously.
-
-</dd>
-<dt>oauth_signature_method:</dt>
-<dd>
- The signature method the Consumer used to sign the request.
-
-</dd>
-<dt>oauth_signature:</dt>
-<dd>
- The signature as defined in <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_timestamp:</dt>
-<dd>
- As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_nonce:</dt>
-<dd>
- As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_version:</dt>
-<dd>
- OPTIONAL. If present, value MUST be <tt>
- 1.0
- </tt>. Service Providers
- MUST assume the protocol version to be <tt>1.0</tt> if this parameter
- is not present. Service Providers’ response to non-<tt>1.0</tt> value
- is left undefined.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- No additional Service Provider specific parameters are allowed when
- requesting an Access Token to ensure all Token related information
- is present prior to seeking User approval.
-
-</p>
-
-<p><a name="access_grant"></a><br></p><hr>
-
-<p><a name="rfc.section.6.3.2"></a></p><h3>6.3.2.&nbsp;
-Service Provider Grants an Access Token</h3>
-
-<p>
- The Service Provider MUST ensure that:
-
- </p>
-<ul class="text">
-<li>
- The request signature has been successfully verified.
-
-</li>
-<li>
- The Request Token has never been exchanged for an Access Token.
-
-</li>
-<li>
- The Request Token matches the Consumer Key.
-
-</li>
-</ul><p>
-
-</p>
-
-<p>
- If successful, the Service Provider generates an Access Token and
- Token Secret and returns them in the HTTP response body as defined
- in <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
- The Access Token and Token Secret are stored by the Consumer and
- used when signing Protected Resources requests. The response
- contains the following parameters:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_token:</dt>
-<dd>
- The Access Token.
-
-</dd>
-<dt>oauth_token_secret:</dt>
-<dd>
- The Token Secret.
-
-</dd>
-<dt>Additional parameters:</dt>
-<dd>
- Any additional parameters, as defined by the Service Provider.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- If the request fails verification or is rejected for other reasons,
- the Service Provider SHOULD respond with the appropriate response
- code as defined in <a class="info" href="#http_codes">HTTP Response Codes<span> (</span><span class="info">HTTP Response Codes</span><span>)</span></a>.
- The Service Provider MAY include some further details about why the
- request was rejected in the HTTP response body as defined in
- <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
-
-</p>
-
-<p><a name="anchor13"></a><br></p><hr>
-
-<p><a name="rfc.section.7"></a></p><h3>7.&nbsp;
-Accessing Protected Resources</h3>
-
-<p>
- After successfully receiving the Access Token and Token Secret, the
- Consumer is able to access the Protected Resources on behalf of the
- User. The request MUST be signed per
- <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>, and
- contains the following parameters:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_consumer_key:</dt>
-<dd>
- The Consumer Key.
-
-</dd>
-<dt>oauth_token:</dt>
-<dd>
- The Access Token.
-
-</dd>
-<dt>oauth_signature_method:</dt>
-<dd>
- The signature method the Consumer used to sign the request.
-
-</dd>
-<dt>oauth_signature:</dt>
-<dd>
- The signature as defined in
- <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_timestamp:</dt>
-<dd>
- As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_nonce:</dt>
-<dd>
- As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
-
-</dd>
-<dt>oauth_version:</dt>
-<dd>
- OPTIONAL. If present, value MUST be <tt>1.0</tt>. Service Providers
- MUST assume the protocol version to be <tt>1.0</tt> if this parameter
- is not present. Service Providers’ response to non-<tt>1.0</tt> value
- is left undefined.
-
-</dd>
-<dt>Additional parameters:</dt>
-<dd>
- Any additional parameters, as defined by the Service Provider.
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p><a name="nonce"></a><br></p><hr>
-
-<p><a name="rfc.section.8"></a></p><h3>8.&nbsp;
-Nonce and Timestamp</h3>
-
-<p>
- Unless otherwise specified by the Service Provider, the timestamp is
- expressed in the number of seconds since January 1, 1970 00:00:00 GMT.
- The timestamp value MUST be a positive integer and MUST be equal or
- greater than the timestamp used in previous requests.
-
-</p>
-
-<p>
- The Consumer SHALL then generate a Nonce value that is unique for all
- requests with that timestamp. A nonce is a random string, uniquely
- generated for each request. The nonce allows the Service Provider to
- verify that a request has never been made before and helps prevent
- replay attacks when requests are made over a non-secure channel
- (such as HTTP).
-
-</p>
-
-<p><a name="signing_process"></a><br></p><hr>
-
-<p><a name="rfc.section.9"></a></p><h3>9.&nbsp;
-Signing Requests</h3>
-
-<p>
- All Token requests and Protected Resources requests MUST be
- signed by the Consumer and verified by the Service Provider.
- The purpose of signing requests is to prevent unauthorized parties
- from using the Consumer Key and Tokens when making Token requests or
- Protected Resources requests. The signature process encodes
- the Consumer Secret and Token Secret into a verifiable value which is
- included with the request.
-
-</p>
-
-<p>
- OAuth does not mandate a particular signature method, as each
- implementation can have its own unique requirements. The protocol
- defines three signature methods: <tt>HMAC-SHA1</tt>,
- <tt>RSA-SHA1</tt>, and
- <tt>PLAINTEXT</tt>, but Service Providers
- are free to implement and document their own methods.
- Recommending any particular method is beyond the scope of this specification.
-
-</p>
-
-<p>
- The Consumer declares a signature method in the <tt>oauth_signature_method</tt>
- parameter, generates a signature, and stores it in the <tt>oauth_signature</tt>
- parameter. The Service Provider verifies the signature as specified in
- each method. When verifying a Consumer signature, the Service Provider
- SHOULD check the request nonce to ensure it has not been used in a
- previous Consumer request.
-
-</p>
-
-<p>
- The signature process MUST NOT change the request parameter names or
- values, with the exception of the <tt>oauth_signature</tt> parameter.
-
-</p>
-
-<p><a name="anchor14"></a><br></p><hr>
-
-<p><a name="rfc.section.9.1"></a></p><h3>9.1.&nbsp;
-Signature Base String</h3>
-
-<p>
- The Signature Base String is a consistent reproducible concatenation
- of the request elements into a single string. The string is used as an
- input in hashing or signing algorithms. The <tt>HMAC-SHA1</tt> signature
- method provides both a standard and an example of using the Signature
- Base String with a signing algorithm to generate signatures. All
- the request parameters MUST be encoded as described in
- <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a> prior to
- constructing the Signature Base String.
-
-</p>
-
-<p><a name="sig_norm_param"></a><br></p><hr>
-
-<p><a name="rfc.section.9.1.1"></a></p><h3>9.1.1.&nbsp;
-Normalize Request Parameters</h3>
-
-<p>
- The request parameters are collected, sorted and concatenated into
- a normalized string:
-
- </p>
-<ul class="text">
-<li>
- Parameters in the <a class="info" href="#auth_header_authorization">OAuth HTTP Authorization header<span> (</span><span class="info">Authorization Header</span><span>)</span></a> excluding the <tt>realm</tt>
- parameter.
-
-</li>
-<li>
- Parameters in the HTTP POST request body (with a
- <tt>content-type</tt> of
- <tt>application/x-www-form-urlencoded</tt>).
-
-</li>
-<li>
- HTTP GET parameters added to the URLs in the query part (as defined by
- <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> section 3).
-
-</li>
-</ul><p>
-
-</p>
-
-<p>
- The <tt>oauth_signature</tt> parameter MUST be
- excluded.
-
-</p>
-
-<p>
- The parameters are normalized into a single string as follows:
-
- </p>
-<ol class="text">
-<li>
- Parameters are sorted by name, using lexicographical byte value
- ordering. If two or more parameters share the same name, they
- are sorted by their value. For example:
-
- <div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> a=1, c=hi%20there, f=25, f=50, f=a, z=p, z=t
-</pre></div>
-
-</li>
-<li>
- Parameters are concatenated in their sorted order into a single
- string. For each parameter, the name is separated from the
- corresponding value by an ‘=’ character (ASCII code 61), even
- if the value is empty. Each name-value pair is separated by an
- ‘&amp;’ character (ASCII code 38). For example:
-
- <div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> a=1&amp;c=hi%20there&amp;f=25&amp;f=50&amp;f=a&amp;z=p&amp;z=t
-</pre></div>
-
-</li>
-</ol><p>
-
-</p>
-
-<p><a name="sig_url"></a><br></p><hr>
-
-<p><a name="rfc.section.9.1.2"></a></p><h3>9.1.2.&nbsp;
-Construct Request URL</h3>
-
-<p>
- The Signature Base String includes the request absolute URL, tying
- the signature to a specific endpoint. The URL used in the Signature
- Base String MUST include the scheme, authority, and path, and MUST
- exclude the query and fragment as defined by <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a>
- section 3.
-
-</p>
-
-<p>
- If the absolute request URL is not available to the Service Provider
- (it is always available to the Consumer), it can be constructed by
- combining the scheme being used, the HTTP <tt>Host</tt>
- header, and the relative HTTP request URL. If the
- <tt>Host</tt> header is not available, the Service
- Provider SHOULD use the host name communicated to the Consumer in the
- documentation or other means.
-
-</p>
-
-<p>
- The Service Provider SHOULD document the form of URL used in the
- Signature Base String to avoid ambiguity due to URL normalization.
- Unless specified, URL scheme and authority MUST be lowercase and
- include the port number; <tt>http</tt> default
- port 80 and <tt>https</tt> default port 443 MUST
- be excluded.
-
-</p>
-
-<p>
- For example, the request:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> HTTP://Example.com:80/resource?id=123
-</pre></div><p>
-
-
- Is included in the Signature Base String as:
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://example.com/resource
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor15"></a><br></p><hr>
-
-<p><a name="rfc.section.9.1.3"></a></p><h3>9.1.3.&nbsp;
-Concatenate Request Elements</h3>
-
-<p>
- The following items MUST be concatenated in order into a single
- string. Each item is <a class="info" href="#encoding_parameters">encoded<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>
- and separated by an ‘&amp;’ character (ASCII code 38), even if empty.
-
- </p>
-<ol class="text">
-<li>
- The HTTP request method used to send the request. Value MUST be
- uppercase, for example: <tt>HEAD</tt>, <tt>
- GET
- </tt>, <tt>POST</tt>, etc.
-
-</li>
-<li>
- The request URL from <a class="info" href="#sig_url">Section&nbsp;9.1.2<span> (</span><span class="info">Construct Request URL</span><span>)</span></a>.
-
-</li>
-<li>
- The normalized request parameters string from <a class="info" href="#sig_norm_param">Section&nbsp;9.1.1<span> (</span><span class="info">Normalize Request Parameters</span><span>)</span></a>.
-
-</li>
-</ol><p>
-
-</p>
-
-<p>
- See Signature Base String example in <a class="info" href="#sig_base_example">Appendix&nbsp;A.5.1<span> (</span><span class="info">Generating Signature Base String</span><span>)</span></a>.
-
-</p>
-
-<p><a name="anchor16"></a><br></p><hr>
-
-<p><a name="rfc.section.9.2"></a></p><h3>9.2.&nbsp;
-HMAC-SHA1</h3>
-
-<p>
- The <tt>HMAC-SHA1</tt> signature method uses the HMAC-SHA1 signature
- algorithm as defined in <a class="info" href="#RFC2104">[RFC2104]<span> (</span><span class="info">Krawczyk, H., Bellare, M., and R. Canetti, “HMAC: Keyed-Hashing for Message Authentication,” .</span><span>)</span></a> where the Signature
- Base String is the <tt>text</tt> and the
- <tt>key</tt> is the concatenated values
- (each first encoded per <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>)
- of the Consumer Secret and Token Secret, separated by an ‘&amp;’
- character (ASCII code 38) even if empty.
-
-</p>
-
-<p><a name="anchor17"></a><br></p><hr>
-
-<p><a name="rfc.section.9.2.1"></a></p><h3>9.2.1.&nbsp;
-Generating Signature</h3>
-
-<p>
- <tt>oauth_signature</tt> is set
- to the calculated <tt>digest</tt> octet string, first base64-encoded per
- <a class="info" href="#RFC2045">[RFC2045]<span> (</span><span class="info">Freed, N. and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,” .</span><span>)</span></a> section 6.8, then URL-encoded per
- <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>.
-
-</p>
-
-<p><a name="anchor18"></a><br></p><hr>
-
-<p><a name="rfc.section.9.2.2"></a></p><h3>9.2.2.&nbsp;
-Verifying Signature</h3>
-
-<p>
- The Service Provider verifies the request by generating a new request
- signature octet string, and comparing it to the signature provided by the Consumer,
- first URL-decoded per <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>,
- then base64-decoded per <a class="info" href="#RFC2045">[RFC2045]<span> (</span><span class="info">Freed, N. and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,” .</span><span>)</span></a> section 6.8.
- The signature is generated using the request parameters as provided
- by the Consumer, and the Consumer Secret and Token Secret as stored
- by the Service Provider.
-
-</p>
-
-<p><a name="anchor19"></a><br></p><hr>
-
-<p><a name="rfc.section.9.3"></a></p><h3>9.3.&nbsp;
-RSA-SHA1</h3>
-
-<p>
- The <tt>RSA-SHA1</tt> signature method uses the
- RSASSA-PKCS1-v1_5 signature algorithm as defined in
- <a class="info" href="#RFC3447">[RFC3447]<span> (</span><span class="info">Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1,” .</span><span>)</span></a> section 8.2 (more simply known as PKCS#1),
- using SHA-1 as the hash function for EMSA-PKCS1-v1_5. It is assumed
- that the Consumer has provided its RSA public key in a verified way
- to the Service Provider, in a manner which is beyond the scope of
- this specification.
-
-</p>
-
-<p><a name="anchor20"></a><br></p><hr>
-
-<p><a name="rfc.section.9.3.1"></a></p><h3>9.3.1.&nbsp;
-Generating Signature</h3>
-
-<p>
- The Signature Base String is signed using the Consumer’s RSA private
- key per <a class="info" href="#RFC3447">[RFC3447]<span> (</span><span class="info">Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1,” .</span><span>)</span></a> section 8.2.1, where <tt>K</tt> is the
- Consumer’s RSA private key, <tt>M</tt> the Signature Base String, and <tt>S</tt> is
- the result signature octet string:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> S = RSASSA-PKCS1-V1_5-SIGN (K, M)
-</pre></div><p>
-
-
-</p>
-
-<p>
- <tt>oauth_signature</tt> is set to <tt>S</tt>, first base64-encoded per
- <a class="info" href="#RFC2045">[RFC2045]<span> (</span><span class="info">Freed, N. and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,” .</span><span>)</span></a> section 6.8, then URL-encoded per
- <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>.
-
-</p>
-
-<p><a name="anchor21"></a><br></p><hr>
-
-<p><a name="rfc.section.9.3.2"></a></p><h3>9.3.2.&nbsp;
-Verifying Signature</h3>
-
-<p>
- The Service Provider verifies the signature per <a class="info" href="#RFC3447">[RFC3447]<span> (</span><span class="info">Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1,” .</span><span>)</span></a>
- section 8.2.2, where <tt>
- (n, e)
- </tt> is the Consumer’s RSA public key, <tt>M</tt>
- is the Signature Base String, and <tt>S</tt> is the octet string
- representation of the <tt>oauth_signature</tt> value:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> RSASSA-PKCS1-V1_5-VERIFY ((n, e), M, S)
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor22"></a><br></p><hr>
-
-<p><a name="rfc.section.9.4"></a></p><h3>9.4.&nbsp;
-PLAINTEXT</h3>
-
-<p>
- The <tt>
- PLAINTEXT
- </tt> method does not provide any security protection and
- SHOULD only be used over a secure channel such as HTTPS. It does not
- use the Signature Base String.
-
-</p>
-
-<p><a name="anchor23"></a><br></p><hr>
-
-<p><a name="rfc.section.9.4.1"></a></p><h3>9.4.1.&nbsp;
-Generating Signature</h3>
-
-<p>
- <tt>oauth_signature</tt> is set to the concatenated encoded values of the
- Consumer Secret and Token Secret, separated by a ‘&amp;’ character (ASCII
- code 38), even if either secret is empty. The result MUST be encoded again.
-
-</p>
-
-<p>
- These examples show the value of <tt>oauth_signature</tt>
- for Consumer Secret <tt>djr9rjt0jd78jf88</tt> and
- 3 different Token Secrets:
-
- </p>
-<blockquote class="text"><dl>
-<dt>jjd999tj88uiths3:</dt>
-<dd>
- <tt>oauth_signature</tt>=<tt>djr9rjt0jd78jf88%26jjd999tj88uiths3</tt>
-
-</dd>
-<dt>jjd99$tj88uiths3:</dt>
-<dd>
- <tt>oauth_signature</tt>=<tt>djr9rjt0jd78jf88%26jjd99%2524tj88uiths3</tt>
-
-</dd>
-<dt>Empty:</dt>
-<dd>
- <tt>oauth_signature</tt>=<tt>djr9rjt0jd78jf88%26</tt>
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p><a name="anchor24"></a><br></p><hr>
-
-<p><a name="rfc.section.9.4.2"></a></p><h3>9.4.2.&nbsp;
-Verifying Signature</h3>
-
-<p>
- The Service Provider verifies the request by breaking the signature
- value into the Consumer Secret and Token Secret, and ensures they
- match the secrets stored locally.
-
-</p>
-
-<p><a name="http_codes"></a><br></p><hr>
-
-<p><a name="rfc.section.10"></a></p><h3>10.&nbsp;
-HTTP Response Codes</h3>
-
-<p>
- This section applies only to the Request Token and Access Token
- requests. In general, the Service Provider SHOULD use the
- response codes defined in <a class="info" href="#RFC2616">[RFC2616]<span> (</span><span class="info">Fielding,
-R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T.
-Berners-Lee, “Hypertext Transfer Protocol – HTTP/1.1,” .</span><span>)</span></a> Section 10. When
- the Service Provider rejects a Consumer request, it SHOULD respond with
- HTTP 400 Bad Request or HTTP 401 Unauthorized.
-
- </p>
-<ul class="text">
-<li>
- HTTP 400 Bad Request
-
-<ul class="text">
-<li>
- Unsupported parameter
-
-</li>
-<li>
- Unsupported signature method
-
-</li>
-<li>
- Missing required parameter
-
-</li>
-<li>
- Duplicated OAuth Protocol Parameter
-
-</li>
-</ul>
-
-</li>
-<li>
- HTTP 401 Unauthorized
-
-<ul class="text">
-<li>
- Invalid Consumer Key
-
-</li>
-<li>
- Invalid / expired Token
-
-</li>
-<li>
- Invalid signature
-
-</li>
-<li>
- Invalid / used nonce
-
-</li>
-</ul>
-
-</li>
-</ul><p>
-
-</p>
-
-<p><a name="anchor25"></a><br></p><hr>
-
-<p><a name="rfc.section.A"></a></p><h3>Appendix A.&nbsp;
-Appendix A - Protocol Example</h3>
-
-<p>
- In this example, the Service Provider photos.example.net is a photo
- sharing website, and the Consumer printer.example.com is a photo
- printing website. Jane, the User, would like printer.example.com to
- print the private photo <tt>
- vacation.jpg
- </tt> stored at photos.example.net.
-
-</p>
-
-<p>
- When Jane signs-into photos.example.net using her username and
- password, she can access the photo by going to the URL
- <tt>http://photos.example.net/photo?file=vacation.jpg</tt>. Other Users
- cannot access that photo, and Jane does not want to share her
- username and password with printer.example.com.
-
-</p>
-
-<p>
- The requests in this example use the URL query method when sending
- parameters. This is done to simplify the example and should not be
- taken as an endorsement of one method over the others.
-
-</p>
-
-<p><a name="anchor26"></a><br></p><hr>
-
-<p><a name="rfc.section.A.1"></a></p><h3>Appendix A.1.&nbsp;
-Documentation and Registration</h3>
-
-<p>
- The Service Provider documentation explains how to register for a
- Consumer Key and Consumer Secret, and declares the following URLs:
-
- </p>
-<blockquote class="text"><dl>
-<dt>Request Token URL:</dt>
-<dd>
- https://photos.example.net/request_token, using HTTP POST
-
-</dd>
-<dt>User Authorization URL:</dt>
-<dd>
- http://photos.example.net/authorize, using HTTP GET
-
-</dd>
-<dt>Access Token URL:</dt>
-<dd>
- https://photos.example.net/access_token, using HTTP POST
-
-</dd>
-<dt>Photo (Protected Resource) URL:</dt>
-<dd>
- http://photos.example.net/photo with required parameter
- <tt>file</tt> and optional parameter <tt>size</tt>
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- The Service Provider declares support for the <tt>
- HMAC-SHA1
- </tt> signature
- method for all requests, and <tt>PLAINTEXT</tt> only for secure (HTTPS)
- requests.
-
-</p>
-
-<p>
- The Consumer printer.example.com already established a Consumer Key
- and Consumer Secret with photos.example.net and advertizes its
- printing services for photos stored on photos.example.net. The
- Consumer registration is:
-
- </p>
-<blockquote class="text"><dl>
-<dt>Consumer Key:</dt>
-<dd>
- <tt>
- dpf43f3p2l4k3l03
- </tt>
-
-</dd>
-<dt>Consumer Secret:</dt>
-<dd>
- <tt>kd94hf93k423kf44</tt>
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p><a name="anchor27"></a><br></p><hr>
-
-<p><a name="rfc.section.A.2"></a></p><h3>Appendix A.2.&nbsp;
-Obtaining a Request Token</h3>
-
-<p>
- After Jane informs printer.example.com that she would like to print
- her vacation photo stored at photos.example.net, the printer website
- tries to access the photo and receives HTTP 401 Unauthorized
- indicating it is private. The Service Provider includes the following
- header with the response:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> WWW-Authenticate: OAuth realm="http://photos.example.net/"
-</pre></div><p>
-
-
-</p>
-
-<p>
- The Consumer sends the following HTTP POST request to the Service
- Provider:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> https://photos.example.net/request_token?oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_signature_method=PLAINTEXT&amp;oauth_signature=kd94hf93k423kf44%26&amp;oauth_timestamp=1191242090&amp;oauth_nonce=hsu94j3884jdopsl&amp;oauth_version=1.0
-</pre></div><p>
-
-
-</p>
-
-<p>
- The Service Provider checks the signature and replies with an
- unauthorized Request Token in the body of the HTTP response:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> oauth_token=hh5s93j4hdidpola&amp;oauth_token_secret=hdhd0244k9j7ao03
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor28"></a><br></p><hr>
-
-<p><a name="rfc.section.A.3"></a></p><h3>Appendix A.3.&nbsp;
-Requesting User Authorization</h3>
-
-<p>
- The Consumer redirects Jane’s browser to the Service Provider
- User Authorization URL to obtain Jane’s approval for accessing
- her private photos.
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://photos.example.net/authorize?oauth_token=hh5s93j4hdidpola&amp;oauth_callback=http%3A%2F%2Fprinter.example.com%2Frequest_token_ready
-</pre></div><p>
-
-
-</p>
-
-<p>
- The Service Provider asks Jane to sign-in using her username and
- password and, if successful, asks her if she approves granting
- printer.example.com access to her private photos. If Jane approves
- the request, the Service Provider redirects her back to the
- Consumer’s callback URL:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://printer.example.com/request_token_ready?oauth_token=hh5s93j4hdidpola
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor29"></a><br></p><hr>
-
-<p><a name="rfc.section.A.4"></a></p><h3>Appendix A.4.&nbsp;
-Obtaining an Access Token</h3>
-
-<p>
- Now that the Consumer knows Jane approved the Request Token, it
- asks the Service Provider to exchange it for an Access Token:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> https://photos.example.net/access_token?oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_token=hh5s93j4hdidpola&amp;oauth_signature_method=PLAINTEXT&amp;oauth_signature=kd94hf93k423kf44%26hdhd0244k9j7ao03&amp;oauth_timestamp=1191242092&amp;oauth_nonce=dji430splmx33448&amp;oauth_version=1.0
-</pre></div><p>
-
-
-</p>
-
-<p>
- The Service Provider checks the signature and replies with an
- Access Token in the body of the HTTP response:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> oauth_token=nnch734d00sl2jdk&amp;oauth_token_secret=pfkkdhi9sl3r4s00
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor30"></a><br></p><hr>
-
-<p><a name="rfc.section.A.5"></a></p><h3>Appendix A.5.&nbsp;
-Accessing Protected Resources</h3>
-
-<p>
- The Consumer is now ready to request the private photo. Since the
- photo URL is not secure (HTTP), it must use <tt>HMAC-SHA1</tt>.
-
-</p>
-
-<p><a name="sig_base_example"></a><br></p><hr>
-
-<p><a name="rfc.section.A.5.1"></a></p><h3>Appendix A.5.1.&nbsp;
-Generating Signature Base String</h3>
-
-<p>
- To generate the signature, it first needs to generate the Signature
- Base String. The request contains the following parameters
- (<tt>oauth_signature</tt> excluded) which are ordered and concatenated into
- a normalized string:
-
- </p>
-<blockquote class="text"><dl>
-<dt>oauth_consumer_key:</dt>
-<dd>
- <tt>dpf43f3p2l4k3l03</tt>
-
-</dd>
-<dt>oauth_token:</dt>
-<dd>
- <tt>nnch734d00sl2jdk</tt>
-
-</dd>
-<dt>oauth_signature_method:</dt>
-<dd>
- <tt>HMAC-SHA1</tt>
-
-</dd>
-<dt>oauth_timestamp:</dt>
-<dd>
- <tt>1191242096</tt>
-
-</dd>
-<dt>oauth_nonce:</dt>
-<dd>
- <tt>kllo9940pd9333jh</tt>
-
-</dd>
-<dt>oauth_version:</dt>
-<dd>
- <tt>1.0</tt>
-
-</dd>
-<dt>file:</dt>
-<dd>
- <tt>vacation.jpg</tt>
-
-</dd>
-<dt>size:</dt>
-<dd>
- <tt>original</tt>
-
-</dd>
-</dl></blockquote><p>
-
-</p>
-
-<p>
- The following inputs are used to generate the Signature Base String:
-
- </p>
-<ol class="text">
-<li>
- <tt>GET</tt>
-
-</li>
-<li>
- <tt>http://photos.example.net/photos</tt>
-
-</li>
-<li>
- <tt>file=vacation.jpg&amp;oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_nonce=kllo9940pd9333jh&amp;oauth_signature_method=HMAC-SHA1&amp;oauth_timestamp=1191242096&amp;oauth_token=nnch734d00sl2jdk&amp;oauth_version=1.0&amp;size=original</tt>
-
-</li>
-</ol><p>
-
-</p>
-
-<p>
- The Signature Base String is:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> GET&amp;http%3A%2F%2Fphotos.example.net%2Fphotos&amp;file%3Dvacation.jpg%26oauth_consumer_key%3Ddpf43f3p2l4k3l03%26oauth_nonce%3Dkllo9940pd9333jh%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1191242096%26oauth_token%3Dnnch734d00sl2jdk%26oauth_version%3D1.0%26size%3Doriginal
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor31"></a><br></p><hr>
-
-<p><a name="rfc.section.A.5.2"></a></p><h3>Appendix A.5.2.&nbsp;
-Calculating Signature Value</h3>
-
-<p>
- HMAC-SHA1 produces the following <tt>digest</tt> value as a base64-encoded
- string (using the Signature Base String as <tt>text</tt> and
- <tt>
- kd94hf93k423kf44&amp;pfkkdhi9sl3r4s00
- </tt> as <tt>key</tt>):
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> tR3+Ty81lMeYAr/Fid0kMTYa/WM=
-</pre></div><p>
-
-
-</p>
-
-<p><a name="anchor32"></a><br></p><hr>
-
-<p><a name="rfc.section.A.5.3"></a></p><h3>Appendix A.5.3.&nbsp;
-Requesting Protected Resource</h3>
-
-<p>
- All together, the Consumer request for the photo is:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://photos.example.net/photos?file=vacation.jpg&amp;size=original
-
- Authorization: OAuth realm="http://photos.example.net/",
- oauth_consumer_key="dpf43f3p2l4k3l03",
- oauth_token="nnch734d00sl2jdk",
- oauth_signature_method="HMAC-SHA1",
- oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D",
- oauth_timestamp="1191242096",
- oauth_nonce="kllo9940pd9333jh",
- oauth_version="1.0"
-</pre></div><p>
-
-
-</p>
-
-<p>
- And if using query parameters:
-
- </p>
-<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://photos.example.net/photos?file=vacation.jpg&amp;size=original&amp;oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_token=nnch734d00sl2jdk&amp;oauth_signature_method=HMAC-SHA1&amp;oauth_signature=tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D&amp;oauth_timestamp=1191242096&amp;oauth_nonce=kllo9940pd9333jh&amp;oauth_version=1.0
-</pre></div><p>
-
-
-</p>
-
-<p>
- photos.example.net checks the signature and responds with the
- requested photo.
-
-</p>
-
-<p><a name="anchor33"></a><br></p><hr>
-
-<p><a name="rfc.section.B"></a></p><h3>Appendix B.&nbsp;
-Security Considerations</h3>
-
-<p><a name="anchor34"></a><br></p><hr>
-
-<p><a name="rfc.section.B.1"></a></p><h3>Appendix B.1.&nbsp;
-Credentials and Token Exchange</h3>
-
-<p>
- The OAuth specification does not describe any mechanism for protecting
- Tokens and secrets from eavesdroppers when they are transmitted from
- the Service Provider to the Consumer in <a class="info" href="#request_grant">Section&nbsp;6.1.2<span> (</span><span class="info">Service Provider Issues an Unauthorized Request Token</span><span>)</span></a>
- and <a class="info" href="#access_grant">Section&nbsp;6.3.2<span> (</span><span class="info">Service Provider Grants an Access Token</span><span>)</span></a>. Service Providers should ensure
- that these transmissions are protected using transport-layer mechanisms
- such as TLS or SSL.
-
-</p>
-
-<p><a name="anchor35"></a><br></p><hr>
-
-<p><a name="rfc.section.B.2"></a></p><h3>Appendix B.2.&nbsp;
-PLAINTEXT Signature Method</h3>
-
-<p>
- When used with <tt>PLAINTEXT</tt> signatures, the
- OAuth protocol makes no attempts to protect User credentials from
- eavesdroppers or man-in-the-middle attacks.
- The <tt>PLAINTEXT</tt> signature algorithm is only
- intended to be used in conjunction with a transport-layer security
- mechanism such as TLS or SSL which does provide such protection.
- If transport-layer protection is unavailable, the
- <tt>PLAINTEXT</tt> signature method should not be
- used.
-
-</p>
-
-<p><a name="anchor36"></a><br></p><hr>
-
-<p><a name="rfc.section.B.3"></a></p><h3>Appendix B.3.&nbsp;
-Confidentiality of Requests</h3>
-
-<p>
- While OAuth provides a mechanism for verifying the integrity of
- requests, it provides no guarantee of request confidentiality.
- Unless further precautions are taken, eavesdroppers will have full
- access to request content. Service Providers should carefully
- consider the kinds of data likely to be sent as part of such requests,
- and should employ transport-layer security mechanisms to protect
- sensitive resources.
-
-</p>
-
-<p><a name="anchor37"></a><br></p><hr>
-
-<p><a name="rfc.section.B.4"></a></p><h3>Appendix B.4.&nbsp;
-Spoofing by Counterfeit Servers</h3>
-
-<p>
- OAuth makes no attempt to verify the authenticity of the Service
- Provider. A hostile party could take advantage of this by intercepting
- the Consumer’s requests and returning misleading or otherwise incorrect
- responses. Service providers should consider such attacks when
- developing services based on OAuth, and should require transport-layer
- security for any requests where the authenticity of the Service
- Provider or of request responses is an issue.
-
-</p>
-
-<p><a name="anchor38"></a><br></p><hr>
-
-<p><a name="rfc.section.B.5"></a></p><h3>Appendix B.5.&nbsp;
-Proxying and Caching of Authenticated Content</h3>
-
-<p>
- The <a class="info" href="#auth_header">HTTP Authorization scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a> is
- optional. However, <a class="info" href="#RFC2616">[RFC2616]<span> (</span><span class="info">Fielding,
-R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T.
-Berners-Lee, “Hypertext Transfer Protocol – HTTP/1.1,” .</span><span>)</span></a> relies on the
- <tt>Authorization</tt> and
- <tt>WWW-Authenticate</tt> headers to distinguish
- authenticated content so that it can be protected. Proxies and
- caches, in particular, may fail to adequately protect requests not
- using these headers.
-
-</p>
-
-<p>
- For example, private authenticated content may be stored in (and thus
- retrievable from) publicly-accessible caches. Service Providers not
- using the <a class="info" href="#auth_header">HTTP Authorization scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a>
- should take care to use other mechanisms, such as the
- <tt>Cache-Control</tt> header, to ensure that
- authenticated content is protected.
-
-</p>
-
-<p><a name="anchor39"></a><br></p><hr>
-
-<p><a name="rfc.section.B.6"></a></p><h3>Appendix B.6.&nbsp;
-Plaintext Storage of Credentials</h3>
-
-<p>
- The Consumer Secret and Token Secret function the same way passwords
- do in traditional authentication systems. In order to compute the
- signatures used in the non-<tt>PLAINTEXT</tt>
- methods, the Service Provider must have access to these secrets in
- plaintext form. This is in contrast, for example, to modern operating
- systems, which store only a one-way hash of user credentials.
-
-</p>
-
-<p>
- If an attacker were to gain access to these secrets - or worse, to
- the Service Provider’s database of all such secrets - he or she would
- be able to perform any action on behalf of any User. Accordingly, it
- is critical that Service Providers protect these secrets from
- unauthorized access.
-
-</p>
-
-<p><a name="anchor40"></a><br></p><hr>
-
-<p><a name="rfc.section.B.7"></a></p><h3>Appendix B.7.&nbsp;
-Secrecy of the Consumer Secret</h3>
-
-<p>
- In many applications, the Consumer application will be under the
- control of potentially untrusted parties. For example, if the
- Consumer is a freely available desktop application, an attacker may
- be able to download a copy for analysis. In such cases, attackers
- will be able to recover the Consumer Secret used to authenticate the
- Consumer to the Service Provider.
-
-</p>
-
-<p>
- Accordingly, Service Providers should not use the Consumer Secret
- alone to verify the identity of the Consumer. Where possible, other
- factors such as IP address should be used as well.
-
-</p>
-
-<p><a name="anchor41"></a><br></p><hr>
-
-<p><a name="rfc.section.B.8"></a></p><h3>Appendix B.8.&nbsp;
-Phishing Attacks</h3>
-
-<p>
- Wide deployment of OAuth and similar protocols may cause
- Users to become inured to the practice of being redirected to
- websites where they are asked to enter their passwords. If Users are
- not careful to verify the authenticity of these websites before
- entering their credentials, it will be possible for attackers to
- exploit this practice to steal Users’ passwords.
-
-</p>
-
-<p>
- Service Providers should attempt to educate Users about the risks
- phishing attacks pose, and should provide mechanisms that make it
- easy for Users to confirm the authenticity of their sites.
-
-</p>
-
-<p><a name="anchor42"></a><br></p><hr>
-
-<p><a name="rfc.section.B.9"></a></p><h3>Appendix B.9.&nbsp;
-Scoping of Access Requests</h3>
-
-<p>
- By itself, OAuth does not provide any method for scoping the access
- rights granted to a Consumer. A Consumer either has access to
- Protected Resources or it doesn’t. Many applications will, however,
- require greater granularity of access rights. For example, Service
- Providers may wish to make it possible to grant access to some
- Protected Resources but not others, or to grant only limited access
- (such as read-only access) to those Protected Resources.
-
-</p>
-
-<p>
- When implementing OAuth, Service Providers should consider the types
- of access Users may wish to grant Consumers, and should provide
- mechanisms to do so. Service Providers should also take care to
- ensure that Users understand the access they are granting, as well as
- any risks that may be involved.
-
-</p>
-
-<p><a name="anchor43"></a><br></p><hr>
-
-<p><a name="rfc.section.B.10"></a></p><h3>Appendix B.10.&nbsp;
-Entropy of Secrets</h3>
-
-<p>
- Unless a transport-layer security protocol is used, eavesdroppers will
- have full access to OAuth requests and signatures, and will thus be
- able to mount offline brute-force attacks to recover the Consumer’s
- credentials used. Service Providers should be careful to assign Token
- Secrets and Consumer Secrets which are long enough - and random enough
- - to resist such attacks for at least the length of time that the
- secrets are valid.
-
-</p>
-
-<p>
- For example, if Token Secrets are valid for two weeks, Service
- Providers should ensure that it is not possible to mount a brute force
- attack that recovers the Token Secret in less than two weeks. Of
- course, Service Providers are urged to err on the side of caution,
- and use the longest secrets reasonable.
-
-</p>
-
-<p>
- It is equally important that the pseudo-random number generator (PRNG)
- used to generate these secrets be of sufficiently high quality. Many
- PRNG implementations generate number sequences that may appear to be
- random, but which nevertheless exhibit patterns or other weaknesses
- which make cryptanalysis or brute force attacks easier. Implementors
- should be careful to use cryptographically secure PRNGs to avoid these
- problems.
-
-</p>
-
-<p><a name="anchor44"></a><br></p><hr>
-
-<p><a name="rfc.section.B.11"></a></p><h3>Appendix B.11.&nbsp;
-Denial of Service / Resource Exhaustion Attacks</h3>
-
-<p>
- The OAuth protocol has a number of features which may make resource
- exhaustion attacks against Service Providers possible. For example,
- if a Service Provider includes a nontrivial amount of entropy in Token
- Secrets as recommended above, then an attacker may be able to exhaust
- the Service Provider’s entropy pool very quickly by repeatedly
- obtaining Request Tokens from the Service Provider.
-
-</p>
-
-<p>
- Similarly, OAuth requires Service Providers to track used nonces. If
- an attacker is able to use many nonces quickly, the resources required
- to track them may exhaust available capacity. And again, OAuth can
- require Service Providers to perform potentially expensive computations
- in order to verify the signature on incoming requests. An attacker may
- exploit this to perform a denial of service attack by sending a large
- number of invalid requests to the Service Provider.
-
-</p>
-
-<p>
- Resource Exhaustion attacks are by no means specific to OAuth. However,
- OAuth implementors should be careful to consider the additional
- avenues of attack that OAuth exposes, and design their implementations
- accordingly. For example, entropy starvation typically results in
- either a complete denial of service while the system waits for new
- entropy or else in weak (easily guessable) secrets. When implementing
- OAuth, Service Providers should consider which of these presents a
- more serious risk for their application and design accordingly.
-
-</p>
-
-<p><a name="anchor45"></a><br></p><hr>
-
-<p><a name="rfc.section.B.12"></a></p><h3>Appendix B.12.&nbsp;
-Cryptographic Attacks</h3>
-
-<p>
- SHA-1, the hash algorithm used in <tt>HMAC-SHA1</tt>
- signatures, has been <a class="info" href="#SHA1">shown<span> (</span><span class="info">De Canniere, C. and C. Rechberger, “Finding SHA-1 Characteristics: General Results and Applications,” .</span><span>)</span></a> [SHA1] to have a number
- of cryptographic weaknesses that significantly reduce its resistance to
- collision attacks. Practically speaking, these weaknesses are difficult
- to exploit, and by themselves do not pose a significant risk to users
- of OAuth. They may, however, make more efficient attacks possible, and
- NIST has <a class="info" href="#NIST">announced<span> (</span><span class="info">National
-Institute of Standards and Technolog, NIST., “NIST Brief Comments on
-Recent Cryptanalytic Attacks on Secure Hashing Functions and the
-Continued Security Provided by SHA-1,” .</span><span>)</span></a> [NIST] that it will phase out
- use of SHA-1 by 2010. Service Providers should take this into account
- when considering whether SHA-1 provides an adequate level of security
- for their applications.
-
-</p>
-
-<p><a name="anchor46"></a><br></p><hr>
-
-<p><a name="rfc.section.B.13"></a></p><h3>Appendix B.13.&nbsp;
-Signature Base String Compatibility</h3>
-
-<p>
- The Signature Base String has been designed to support the signature
- methods defined in this specification. When designing additional
- signature methods, the Signature Base String should be evaluated to
- ensure compatibility with the algorithms used.
-
-</p>
-
-<p>
- The Signature Base String cannot guarantee the order in which parameters
- are sent. If parameter ordering is important and affects the result of a
- request, the Signature Base String will not protect against request
- manipulation.
-
-</p>
-
-<p><a name="rfc.references1"></a><br></p><hr>
-
-<h3>11.&nbsp;References</h3>
-
-<table border="0" width="99%">
-<tbody><tr><td class="author-text" valign="top"><a name="NIST">[NIST]</a></td>
-<td class="author-text">National Institute of Standards and Technolog, NIST., “<a href="http://csrc.nist.gov/hash_standards_comments.pdf">NIST Brief Comments on Recent Cryptanalytic Attacks on Secure Hashing Functions and the Continued Security Provided by SHA-1</a>.”</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC2045">[RFC2045]</a></td>
-<td class="author-text">Freed, N. and N. Borenstein, “<a href="http://tools.ietf.org/html/rfc2045">Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</a>,” RFC&nbsp;2045.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC2104">[RFC2104]</a></td>
-<td class="author-text">Krawczyk, H., Bellare, M., and R. Canetti, “<a href="http://tools.ietf.org/html/rfc2104">HMAC: Keyed-Hashing for Message Authentication</a>,” RFC&nbsp;2104.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
-<td class="author-text">Bradner, B., “<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>,” RFC&nbsp;2119.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC2606">[RFC2606]</a></td>
-<td class="author-text">Eastlake, D. and A. Panitz, “<a href="http://tools.ietf.org/html/rfc2606">Reserved Top Level DNS Names</a>,” RFC&nbsp;2606.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC2616">[RFC2616]</a></td>
-<td class="author-text">Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, “<a href="http://tools.ietf.org/html/rfc2616">Hypertext Transfer Protocol – HTTP/1.1</a>,” RFC&nbsp;2616.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC2617">[RFC2617]</a></td>
-<td class="author-text">Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “<a href="http://tools.ietf.org/html/rfc2617">HTTP Authentication: Basic and Digest Access Authentication</a>,” RFC&nbsp;2617.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC3447">[RFC3447]</a></td>
-<td class="author-text">Jonsson, J. and B. Kaliski, “<a href="http://tools.ietf.org/html/rfc3447">Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1</a>,” RFC&nbsp;3447.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC3629">[RFC3629]</a></td>
-<td class="author-text">Yergeau, F., “<a href="http://tools.ietf.org/html/rfc3629">UTF-8, a transformation format of Unicode and ISO 10646</a>,” RFC&nbsp;3629.</td></tr>
-<tr><td class="author-text" valign="top"><a name="RFC3986">[RFC3986]</a></td>
-<td class="author-text">Berners-Lee, T., “<a href="http://tools.ietf.org/html/rfc3986">Uniform Resource Identifiers (URI): Generic Syntax</a>,” RFC&nbsp;3986.</td></tr>
-<tr><td class="author-text" valign="top"><a name="SHA1">[SHA1]</a></td>
-<td class="author-text">De Canniere, C. and C. Rechberger, “<a href="http://dx.doi.org/10.1007/11935230_1">Finding SHA-1 Characteristics: General Results and Applications</a>.”</td></tr>
-</tbody></table>
-
-<p><a name="rfc.authors"></a><br></p><hr>
-
-<h3>Author’s Address</h3>
-
-<table border="0" cellpadding="0" cellspacing="0" width="99%">
-<tbody><tr><td class="author-text">&nbsp;</td>
-<td class="author-text">OAuth Core Workgroup</td></tr>
-<tr><td class="author" align="right">Email:&nbsp;</td>
-<td class="author-text"><a href="mailto:spec@oauth.net">spec@oauth.net</a></td></tr>
-</tbody></table>
-<script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ?
- "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src='" + gaJsHost +
- "google-analytics.com/ga.js'
-type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
- var pageTracker = _gat._getTracker("UA-31771-2");
- pageTracker._initData();
- pageTracker._trackPageview();
-</script>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
+<title>OAuth Core 1.0</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="OAuth Core 1.0">
+<style type="text/css">
+ body {
+ font-family: "lucida grande", verdana, arial, helvetica, sans-serif;
+ font-size: 83%; color: #000; background-color: #FFF;
+ margin: 2em;
+ }
+ h1, h2, h3, h4, h5, h6 {
+ font-family: helvetica neue, arial, "MS Sans Serif", sans-serif;
+ font-weight: bold; font-style: normal;
+ }
+ h1 { color: #111; background-color: transparent; padding-bottom: 2px; border-bottom: 4px solid #efefef; }
+ h3 { color: #333; background-color: transparent; }
+
+
+ td.header {
+ font-family: arial, helvetica, sans-serif; font-size: x-small;
+ vertical-align: top; width: 33%;
+ color: #FFF; background-color: #666;
+ }
+ td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
+ td.author-text { font-size: x-small; }
+
+ /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
+ a.info {
+ /* This is the key. */
+ position: relative;
+ z-index: 24;
+ }
+ a.info:hover {
+ z-index: 25;
+ color: #FFF; background-color: #369;
+ text-decoration: none;
+ }
+ a.info span { display: none; }
+ a.info:hover span.info {
+ /* The span will display just on :hover state. */
+ display: block;
+ position: absolute;
+ font-size: smaller;
+ top: 2em; left: -5em; width: 15em;
+ padding: 2px; border: 1px solid #333;
+ color: #369; background-color: #EEE;
+ text-align: left;
+ }
+
+ a { font-weight: bold; }
+ a:link { color: #369; background-color: transparent; }
+ a:visited { color: #666; background-color: transparent; }
+ a:active { color: #888; background-color: transparent; }
+
+ p { margin-left: 2em; margin-right: 2em; }
+ p.copyright { font-size: x-small; }
+ p.toc { font-size: small; font-weight: bold; margin-left: 3em; }
+ table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
+ td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }
+
+ ol.text { margin-left: 1em; margin-right: 2em; }
+ ul.text { margin-left: 1em; margin-right: 2em; }
+ li { margin-left: 1em; padding-left: 1.2em; }
+
+ /* RFC-2629 <spanx>s and <artwork>s. */
+ em { font-style: italic; }
+ strong { font-weight: bold; }
+ dfn { font-weight: bold; font-style: normal; }
+ cite { font-weight: normal; font-style: normal; }
+ tt { color: #036; }
+ tt, pre, pre dfn, pre em, pre cite, pre span {
+ font-family: "Courier New", Courier, monospace; font-size: small;
+ }
+ pre {
+ text-align: left; padding: 4px;
+ color: #000; background-color: #f7f7f7;
+ width: auto;
+ }
+ pre dfn { color: #369; }
+ pre em { color: #66F; background-color: #FFC; font-weight: normal; }
+ pre .key { color: #33C; font-weight: bold; }
+ pre .id { color: #369; }
+ pre .str { color: #000; background-color: #CFF; }
+ pre .val { color: #066; }
+ pre .rep { color: #909; }
+ pre .oth { color: #000; background-color: #FCF; }
+ pre .err { background-color: #FCC; }
+
+ /* RFC-2629 <texttable>s. */
+ table.all, table.full, table.headers, table.none {
+ font-size: small; text-align: center; border-width: 2px;
+ vertical-align: top; border-collapse: collapse;
+ }
+ table.all, table.full { border-style: solid; border-color: black; }
+ table.headers, table.none { border-style: none; }
+ th {
+ font-weight: bold; border-color: #000;
+ border-width: 2px 2px 3px 2px;
+ }
+ table.all th, table.full th { border-style: solid; }
+ table.headers th { border-style: none none solid none; }
+ table.none th { border-style: none; }
+ table.all td {
+ border-style: solid; border-color: #333;
+ border-width: 1px 2px;
+ }
+ table.full td, table.headers td, table.none td { border-style: none; }
+
+ hr { height: 1px; border:1px solid #e7e7e7; background-color:#e7e7e7;}
+ hr.insert {
+ width: 80%; border-style: none; border-width: 0;
+ color: #CCC; background-color: #CCC;
+ }
+</style>
+</head><body>
+<p><span style="float: right;">December 4, 2007</span></p>
+
+<h1><br>OAuth Core 1.0</h1>
+
+<h3>Abstract</h3>
+
+<p>
+ The OAuth protocol enables websites or applications (Consumers) to
+ access Protected Resources from a web service (Service Provider) via an
+ API, without requiring Users to disclose their Service Provider
+ credentials to the Consumers. More generally, OAuth creates a
+ freely-implementable and generic methodology for API authentication.
+
+</p>
+
+<p>
+ An example use case is allowing printing service printer.example.com
+ (the Consumer), to access private photos stored on photos.example.net
+ (the Service Provider) without requiring Users to provide their
+ photos.example.net credentials to printer.example.com.
+
+</p>
+
+<p>
+ OAuth does not require a specific user interface or interaction
+ pattern, nor does it specify how Service Providers authenticate Users,
+ making the protocol ideally suited for cases where authentication
+ credentials are unavailable to the Consumer, such as with OpenID.
+
+</p>
+
+<p>
+ OAuth aims to unify the experience and implementation of delegated web
+ service authentication into a single, community-driven protocol. OAuth
+ builds on existing protocols and best practices that have been
+ independently implemented by various websites. An open standard,
+ supported by large and small providers alike, promotes a consistent and
+ trusted experience for both application developers and the users of
+ those applications.
+
+</p><a name="toc"></a><br><hr>
+<h3>Table of Contents</h3>
+<p class="toc">
+<a href="#anchor1">1.</a>&nbsp;
+Authors<br>
+<a href="#anchor2">2.</a>&nbsp;
+Notation and Conventions<br>
+<a href="#anchor3">3.</a>&nbsp;
+Definitions<br>
+<a href="#anchor4">4.</a>&nbsp;
+Documentation and Registration<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#request_urls">4.1.</a>&nbsp;
+Request URLs<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">4.2.</a>&nbsp;
+Service Providers<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor6">4.3.</a>&nbsp;
+Consumers<br>
+<a href="#anchor7">5.</a>&nbsp;
+Parameters<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#encoding_parameters">5.1.</a>&nbsp;
+Parameter Encoding<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#consumer_req_param">5.2.</a>&nbsp;
+Consumer Request Parameters<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#response_parameters">5.3.</a>&nbsp;
+Service Provider Response Parameters<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_header">5.4.</a>&nbsp;
+OAuth HTTP Authorization Scheme<br>
+<a href="#anchor9">6.</a>&nbsp;
+Authenticating with OAuth<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_step1">6.1.</a>&nbsp;
+Obtaining an Unauthorized Request Token<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_step2">6.2.</a>&nbsp;
+Obtaining User Authorization<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#auth_step3">6.3.</a>&nbsp;
+Obtaining an Access Token<br>
+<a href="#anchor13">7.</a>&nbsp;
+Accessing Protected Resources<br>
+<a href="#nonce">8.</a>&nbsp;
+Nonce and Timestamp<br>
+<a href="#signing_process">9.</a>&nbsp;
+Signing Requests<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">9.1.</a>&nbsp;
+Signature Base String<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor16">9.2.</a>&nbsp;
+HMAC-SHA1<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor19">9.3.</a>&nbsp;
+RSA-SHA1<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor22">9.4.</a>&nbsp;
+PLAINTEXT<br>
+<a href="#http_codes">10.</a>&nbsp;
+HTTP Response Codes<br>
+<a href="#anchor25">Appendix&nbsp;A.</a>&nbsp;
+Appendix A - Protocol Example<br>
+<a href="#anchor26">Appendix&nbsp;A.1.</a>&nbsp;
+Documentation and Registration<br>
+<a href="#anchor27">Appendix&nbsp;A.2.</a>&nbsp;
+Obtaining a Request Token<br>
+<a href="#anchor28">Appendix&nbsp;A.3.</a>&nbsp;
+Requesting User Authorization<br>
+<a href="#anchor29">Appendix&nbsp;A.4.</a>&nbsp;
+Obtaining an Access Token<br>
+<a href="#anchor30">Appendix&nbsp;A.5.</a>&nbsp;
+Accessing Protected Resources<br>
+<a href="#anchor33">Appendix&nbsp;B.</a>&nbsp;
+Security Considerations<br>
+<a href="#anchor34">Appendix&nbsp;B.1.</a>&nbsp;
+Credentials and Token Exchange<br>
+<a href="#anchor35">Appendix&nbsp;B.2.</a>&nbsp;
+PLAINTEXT Signature Method<br>
+<a href="#anchor36">Appendix&nbsp;B.3.</a>&nbsp;
+Confidentiality of Requests<br>
+<a href="#anchor37">Appendix&nbsp;B.4.</a>&nbsp;
+Spoofing by Counterfeit Servers<br>
+<a href="#anchor38">Appendix&nbsp;B.5.</a>&nbsp;
+Proxying and Caching of Authenticated Content<br>
+<a href="#anchor39">Appendix&nbsp;B.6.</a>&nbsp;
+Plaintext Storage of Credentials<br>
+<a href="#anchor40">Appendix&nbsp;B.7.</a>&nbsp;
+Secrecy of the Consumer Secret<br>
+<a href="#anchor41">Appendix&nbsp;B.8.</a>&nbsp;
+Phishing Attacks<br>
+<a href="#anchor42">Appendix&nbsp;B.9.</a>&nbsp;
+Scoping of Access Requests<br>
+<a href="#anchor43">Appendix&nbsp;B.10.</a>&nbsp;
+Entropy of Secrets<br>
+<a href="#anchor44">Appendix&nbsp;B.11.</a>&nbsp;
+Denial of Service / Resource Exhaustion Attacks<br>
+<a href="#anchor45">Appendix&nbsp;B.12.</a>&nbsp;
+Cryptographic Attacks<br>
+<a href="#anchor46">Appendix&nbsp;B.13.</a>&nbsp;
+Signature Base String Compatibility<br>
+<a href="#rfc.references1">11.</a>&nbsp;
+References<br>
+<a href="#rfc.authors">§</a>&nbsp;
+Author’s Address<br>
+</p>
+
+<p><br clear="all"></p>
+
+<p><a name="anchor1"></a><br></p><hr>
+
+<p><a name="rfc.section.1"></a></p><h3>1.&nbsp;
+Authors</h3>
+
+<ul>
+ <li><span class="vcard"><span class="fn">Mark Atwood</span> (<span class="email">me@mark.atwood.name</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Richard M. Conlan</span> (<span class="email">zeveck@google.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Blaine Cook</span> (<span class="email">blaine@twitter.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Leah Culver</span> (<span class="email">leah@pownce.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Kellan Elliott-McCrea</span> (<span class="email">kellan@flickr.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Larry Halff</span> (<span class="email">larry@ma.gnolia.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Eran Hammer-Lahav</span> (<span class="email">eran@hueniverse.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Ben Laurie</span> (<span class="email">benl@google.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Chris Messina</span> (<span class="email">chris@citizenagency.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">John Panzer</span> (<span class="email">jpanzer@acm.org</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Sam Quigley</span> (<span class="email">quigley@emerose.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">David Recordon</span> (<span class="email">david@sixapart.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Eran Sandler</span> (<span class="email">eran@yedda.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Jonathan Sergent</span> (<span class="email">sergent@google.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Todd Sieling</span> (<span class="email">todd@ma.gnolia.com</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Brian Slesinsky</span> (<span class="email">brian-oauth@slesinsky.org</span>)</span></li>
+ <li><span class="vcard"><span class="fn">Andy Smith</span> (<span class="email">andy@jaiku.com</span>)</span></li>
+</ul>
+
+<p><a name="anchor2"></a><br></p><hr>
+
+<p><a name="rfc.section.2"></a></p><h3>2.&nbsp;
+Notation and Conventions</h3>
+
+<p>
+ The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
+ “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this
+ document are to be interpreted as described in <a class="info" href="#RFC2119">[RFC2119]<span> (</span><span class="info">Bradner, B., “Key words for use in RFCs to Indicate Requirement Levels,” .</span><span>)</span></a>.
+ Domain name examples use <a class="info" href="#RFC2606">[RFC2606]<span> (</span><span class="info">Eastlake, D. and A. Panitz, “Reserved Top Level DNS Names,” .</span><span>)</span></a>.
+
+</p>
+
+<p><a name="anchor3"></a><br></p><hr>
+
+<p><a name="rfc.section.3"></a></p><h3>3.&nbsp;
+Definitions</h3>
+
+<p>
+ </p>
+<blockquote class="text"><dl>
+<dt>Service Provider:</dt>
+<dd>
+ A web application that allows access via OAuth.
+
+</dd>
+<dt>User:</dt>
+<dd>
+ An individual who has an account with the Service Provider.
+
+</dd>
+<dt>Consumer:</dt>
+<dd>
+ A website or application that uses OAuth to access the Service
+ Provider on behalf of the User.
+
+</dd>
+<dt>Protected Resource(s):</dt>
+<dd>
+ Data controlled by the Service Provider, which the Consumer can
+ access through authentication.
+
+</dd>
+<dt>Consumer Developer:</dt>
+<dd>
+ An individual or organization that implements a Consumer.
+
+</dd>
+<dt>Consumer Key:</dt>
+<dd>
+ A value used by the Consumer to identify itself to the Service
+ Provider.
+
+</dd>
+<dt>Consumer Secret:</dt>
+<dd>
+ A secret used by the Consumer to establish ownership of the
+ Consumer Key.
+
+</dd>
+<dt>Request Token:</dt>
+<dd>
+ A value used by the Consumer to obtain authorization from the User,
+ and exchanged for an Access Token.
+
+</dd>
+<dt>Access Token:</dt>
+<dd>
+ A value used by the Consumer to gain access to the Protected
+ Resources on behalf of the User, instead of using the User’s
+ Service Provider credentials.
+
+</dd>
+<dt>Token Secret:</dt>
+<dd>
+ A secret used by the Consumer to establish ownership of a given
+ Token.
+
+</dd>
+<dt>OAuth Protocol Parameters:</dt>
+<dd>
+ Parameters with names beginning with <tt>oauth_</tt>.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p><a name="anchor4"></a><br></p><hr>
+
+<p><a name="rfc.section.4"></a></p><h3>4.&nbsp;
+Documentation and Registration</h3>
+
+<p>
+ OAuth includes a Consumer Key and matching Consumer Secret that
+ together authenticate the Consumer (as opposed to the User) to the
+ Service Provider. Consumer-specific identification allows the Service
+ Provider to vary access levels to Consumers (such as un-throttled access
+ to resources).
+
+</p>
+
+<p>
+ Service Providers SHOULD NOT rely on the Consumer Secret as a method to
+ verify the Consumer identity, unless the Consumer Secret is known to be
+ inaccessible to anyone other than the Consumer and the Service
+ Provider. The Consumer Secret MAY be an empty string (for example when
+ no Consumer verification is needed, or when verification is achieved
+ through other means such as RSA).
+
+</p>
+
+<p><a name="request_urls"></a><br></p><hr>
+
+<p><a name="rfc.section.4.1"></a></p><h3>4.1.&nbsp;
+Request URLs</h3>
+
+<p>
+ OAuth defines three request URLs:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>Request Token URL:</dt>
+<dd>
+ The URL used to obtain an unauthorized Request Token, described
+ in <a class="info" href="#auth_step1">Section&nbsp;6.1<span> (</span><span class="info">Obtaining an Unauthorized Request Token</span><span>)</span></a>.
+
+</dd>
+<dt>User Authorization URL:</dt>
+<dd>
+ The URL used to obtain User authorization for Consumer access,
+ described in <a class="info" href="#auth_step2">Section&nbsp;6.2<span> (</span><span class="info">Obtaining User Authorization</span><span>)</span></a>.
+
+</dd>
+<dt>Access Token URL:</dt>
+<dd>
+ The URL used to exchange the User-authorized Request Token for
+ an Access Token, described in <a class="info" href="#auth_step3">Section&nbsp;6.3<span> (</span><span class="info">Obtaining an Access Token</span><span>)</span></a>.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ The three URLs MUST include scheme, authority, and path, and MAY
+ include query and fragment as defined by <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a>
+ section 3. The request URL query MUST NOT contain any OAuth Protocol
+ Parameters. For example:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://sp.example.com/authorize
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor5"></a><br></p><hr>
+
+<p><a name="rfc.section.4.2"></a></p><h3>4.2.&nbsp;
+Service Providers</h3>
+
+<p>
+ The Service Provider’s responsibility is to enable Consumer Developers
+ to establish a Consumer Key and Consumer Secret. The process and
+ requirements for provisioning these are entirely up to the Service
+ Providers.
+
+</p>
+
+<p>
+ The Service Provider’s documentation includes:
+
+ </p>
+<ol class="text">
+<li>
+ The <a class="info" href="#request_urls">URLs<span> (</span><span class="info">Request URLs</span><span>)</span></a> the Consumer will
+ use when making OAuth requests, and the HTTP methods (i.e. GET,
+ POST, etc.) used in the Request Token URL and Access Token URL.
+
+</li>
+<li>
+ Signature methods supported by the Service Provider.
+
+</li>
+<li>
+ Any additional request parameters that the Service Provider
+ requires in order to obtain a Token. Service Provider specific
+ parameters MUST NOT begin with <tt>oauth_</tt>.
+
+</li>
+</ol><p>
+
+</p>
+
+<p><a name="anchor6"></a><br></p><hr>
+
+<p><a name="rfc.section.4.3"></a></p><h3>4.3.&nbsp;
+Consumers</h3>
+
+<p>
+ The Consumer Developer MUST establish a Consumer Key and a Consumer
+ Secret with the Service Provider. The Consumer Developer MAY also be
+ required to provide additional information to the Service Provider
+ upon registration.
+
+</p>
+
+<p><a name="anchor7"></a><br></p><hr>
+
+<p><a name="rfc.section.5"></a></p><h3>5.&nbsp;
+Parameters</h3>
+
+<p>
+ OAuth Protocol Parameter names and values are case sensitive. Each
+ OAuth Protocol Parameters MUST NOT appear more than once per request,
+ and are REQUIRED unless otherwise noted.
+
+</p>
+
+<p><a name="encoding_parameters"></a><br></p><hr>
+
+<p><a name="rfc.section.5.1"></a></p><h3>5.1.&nbsp;
+Parameter Encoding</h3>
+
+<p>
+ All parameter names and values are escaped using the
+ <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> percent-encoding (%xx) mechanism.
+ Characters not in the unreserved character set
+ (<a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> section 2.3) MUST be encoded. Characters
+ in the unreserved character set MUST NOT be encoded. Hexadecimal
+ characters in encodings MUST be upper case. Text names and values
+ MUST be encoded as UTF-8 octets before percent-encoding them per
+ <a class="info" href="#RFC3629">[RFC3629]<span> (</span><span class="info">Yergeau, F., “UTF-8, a transformation format of Unicode and ISO 10646,” .</span><span>)</span></a>.
+
+</p><div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> unreserved = ALPHA, DIGIT, '-', '.', '_', '~'
+</pre></div>
+<a name="consumer_req_param"></a><br><hr>
+
+<a name="rfc.section.5.2"></a><h3>5.2.&nbsp;
+Consumer Request Parameters</h3>
+
+<p>
+ OAuth Protocol Parameters are sent from the Consumer to the Service
+ Provider in one of three methods, in order of decreasing preference:
+ </p>
+<ol class="text">
+<li>
+ In the HTTP <tt>Authorization</tt> header as defined in
+ <a class="info" href="#auth_header">OAuth HTTP Authorization Scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a>.
+
+</li>
+<li>
+ As the HTTP POST request body with a <tt>
+ content-type
+ </tt> of
+ <tt>application/x-www-form-urlencoded</tt>.
+
+</li>
+<li>
+ Added to the URLs in the query part (as defined by
+ <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> section 3).
+
+</li>
+</ol><p>
+
+</p>
+
+<p>
+ In addition to these defined methods, future extensions may describe
+ alternate methods for sending the OAuth Protocol Parameters.
+ The methods for sending other request parameters are left
+ undefined, but SHOULD NOT use the
+ <a class="info" href="#auth_header">OAuth HTTP Authorization Scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a> header.
+
+</p>
+
+<p><a name="response_parameters"></a><br></p><hr>
+
+<p><a name="rfc.section.5.3"></a></p><h3>5.3.&nbsp;
+Service Provider Response Parameters</h3>
+
+<p>
+ Response parameters are sent by the Service
+ Provider to return Tokens and other information to the Consumer in
+ the HTTP response body. The parameter names and values are first
+ encoded as per <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>, and concatenated with the ‘&amp;’ character (ASCII code 38)
+ as defined in <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> Section 2.1. For example:
+
+</p><div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> oauth_token=ab3cd9j4ks73hf7g&amp;oauth_token_secret=xyz4992k83j47x0b
+</pre></div>
+<a name="auth_header"></a><br><hr>
+
+<a name="rfc.section.5.4"></a><h3>5.4.&nbsp;
+OAuth HTTP Authorization Scheme</h3>
+
+<p>
+ This section defines an <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
+J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
+A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
+Authentication,” .</span><span>)</span></a> extension to
+ support OAuth. It uses the standard HTTP <tt>Authorization</tt> and
+ <tt>WWW-Authenticate</tt> headers to pass OAuth Protocol Parameters.
+
+</p>
+
+<p>
+ It is RECOMMENDED that Service Providers accept the HTTP
+ <tt>Authorization</tt> header. Consumers SHOULD be able to send OAuth
+ Protocol Parameters in the OAuth <tt>Authorization</tt> header.
+
+</p>
+
+<p>
+ The extension auth-scheme (as defined by
+ <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
+J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
+A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
+Authentication,” .</span><span>)</span></a>) is <tt>OAuth</tt> and is case-insensitive.
+
+</p>
+
+<p><a name="auth_header_authorization"></a><br></p><hr>
+
+<p><a name="rfc.section.5.4.1"></a></p><h3>5.4.1.&nbsp;
+Authorization Header</h3>
+
+<p>
+ The OAuth Protocol Parameters are sent in the <tt>Authorization</tt>
+ header the following way:
+
+ </p>
+<ol class="text">
+<li>
+ Parameter names and values are encoded per
+ <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>.
+
+</li>
+<li>
+ For each parameter, the name is immediately followed by an ‘=’
+ character (ASCII code 61), a ‘”’ character (ASCII code 34), the
+ parameter value (MAY be empty), and another ‘”’ character
+ (ASCII code 34).
+
+</li>
+<li>
+ Parameters are separated by a comma character (ASCII code 44)
+ and OPTIONAL linear whitespace per <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
+J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
+A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
+Authentication,” .</span><span>)</span></a>.
+
+</li>
+<li>
+ The OPTIONAL <tt>realm</tt> parameter is added and interpreted per
+ <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
+J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
+A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
+Authentication,” .</span><span>)</span></a>, section 1.2.
+
+</li>
+</ol><p>
+
+</p>
+
+<p>
+ For example:
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> Authorization: OAuth realm="http://sp.example.com/",
+ oauth_consumer_key="0685bd9184jfhq22",
+ oauth_token="ad180jjd733klru7",
+ oauth_signature_method="HMAC-SHA1",
+ oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
+ oauth_timestamp="137131200",
+ oauth_nonce="4572616e48616d6d65724c61686176",
+ oauth_version="1.0"
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor8"></a><br></p><hr>
+
+<p><a name="rfc.section.5.4.2"></a></p><h3>5.4.2.&nbsp;
+WWW-Authenticate Header</h3>
+
+<p>
+ Service Providers MAY indicate their support for the extension by
+ returning the OAuth HTTP <tt>WWW-Authenticate</tt>
+ header upon Consumer requests for Protected Resources. As per
+ <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
+J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
+A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
+Authentication,” .</span><span>)</span></a> such a response MAY include additional
+ HTTP <tt>WWW-Authenticate</tt> headers:
+
+</p>
+
+<p>
+ For example:
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> WWW-Authenticate: OAuth realm="http://sp.example.com/"
+</pre></div><p>
+
+
+</p>
+
+<p>
+ The realm parameter defines a protection realm per
+ <a class="info" href="#RFC2617">[RFC2617]<span> (</span><span class="info">Franks,
+J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen,
+A., and L. Stewart, “HTTP Authentication: Basic and Digest Access
+Authentication,” .</span><span>)</span></a>, section 1.2.
+
+</p>
+
+<p><a name="anchor9"></a><br></p><hr>
+
+<p><a name="rfc.section.6"></a></p><h3>6.&nbsp;
+Authenticating with OAuth</h3>
+
+<p>
+ OAuth authentication is the process in which Users grant access to
+ their Protected Resources without sharing their credentials with the
+ Consumer. OAuth uses Tokens generated by the Service Provider instead
+ of the User’s credentials in Protected Resources requests. The process
+ uses two Token types:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>Request Token:</dt>
+<dd>
+ Used by the Consumer to ask the User to authorize access to the
+ Protected Resources. The User-authorized Request Token is exchanged
+ for an Access Token, MUST only be used once, and MUST NOT be used
+ for any other purpose. It is RECOMMENDED that Request Tokens have
+ a limited lifetime.
+
+</dd>
+<dt>Access Token:</dt>
+<dd>
+ Used by the Consumer to access the Protected Resources on behalf of
+ the User. Access Tokens MAY limit access to certain Protected
+ Resources, and MAY have a limited lifetime. Service Providers
+ SHOULD allow Users to revoke Access Tokens. Only the Access Token
+ SHALL be used to access the Protect Resources.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ OAuth Authentication is done in three steps:
+
+ </p>
+<ol class="text">
+<li>
+ The Consumer obtains an unauthorized Request Token.
+
+</li>
+<li>
+ The User authorizes the Request Token.
+
+</li>
+<li>
+ The Consumer exchanges the Request Token for an Access Token.
+
+</li>
+</ol><p>
+
+</p>
+
+<p><img src="OAuth%20Core%201.0_files/diagram.png" alt=""></p>
+<a name="auth_step1"></a><br><hr>
+
+<a name="rfc.section.6.1"></a><h3>6.1.&nbsp;
+Obtaining an Unauthorized Request Token</h3>
+
+<p>
+ The Consumer obtains an unauthorized Request Token by asking the
+ Service Provider to issue a Token. The Request Token’s sole purpose
+ is to receive User approval and can only be used to obtain an Access
+ Token. The Request Token process goes as follows:
+
+</p>
+
+<p><a name="obtain_request_token"></a><br></p><hr>
+
+<p><a name="rfc.section.6.1.1"></a></p><h3>6.1.1.&nbsp;
+Consumer Obtains a Request Token</h3>
+
+<p>
+ To obtain a Request Token, the Consumer sends an HTTP request to
+ the Service Provider’s Request Token URL. The Service Provider
+ documentation specifies the HTTP method for this request, and HTTP POST
+ is RECOMMENDED. The request MUST be signed and contains the following parameters:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_consumer_key:</dt>
+<dd>
+ The Consumer Key.
+
+</dd>
+<dt>oauth_signature_method:</dt>
+<dd>
+ The signature method the Consumer used to sign the request.
+
+</dd>
+<dt>oauth_signature:</dt>
+<dd>
+ The signature as defined in
+ <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_timestamp:</dt>
+<dd>
+ As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_nonce:</dt>
+<dd>
+ As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_version:</dt>
+<dd>
+ OPTIONAL. If present, value MUST be <tt>
+ 1.0
+ </tt>. Service Providers
+ MUST assume the protocol version to be <tt>1.0</tt> if this parameter
+ is not present. Service Providers’ response to non-<tt>1.0</tt> value
+ is left undefined.
+
+</dd>
+<dt>Additional parameters:</dt>
+<dd>
+ Any additional parameters, as defined by the Service Provider.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p><a name="request_grant"></a><br></p><hr>
+
+<p><a name="rfc.section.6.1.2"></a></p><h3>6.1.2.&nbsp;
+Service Provider Issues an Unauthorized Request Token</h3>
+
+<p>
+ The Service Provider verifies the signature and Consumer Key. If
+ successful, it generates a Request Token and Token Secret and
+ returns them to the Consumer in the HTTP response body as defined
+ in <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
+ The Service Provider MUST ensure the Request
+ Token cannot be exchanged for an Access Token until the User
+ successfully grants access in <a class="info" href="#auth_step2">Obtaining
+ User Authorization<span> (</span><span class="info">Obtaining User Authorization</span><span>)</span></a>.
+
+</p>
+
+<p>
+ The response contains the following parameters:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_token:</dt>
+<dd>
+ The Request Token.
+
+</dd>
+<dt>oauth_token_secret:</dt>
+<dd>
+ The Token Secret.
+
+</dd>
+<dt>Additional parameters:</dt>
+<dd>
+ Any additional parameters, as defined by the Service Provider.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ If the request fails verification or is rejected for other reasons,
+ the Service Provider SHOULD respond with the appropriate response
+ code as defined in <a class="info" href="#http_codes">HTTP Response Codes<span> (</span><span class="info">HTTP Response Codes</span><span>)</span></a>.
+ The Service Provider MAY include some further details about why the
+ request was rejected in the HTTP response body as defined in
+ <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
+
+</p>
+
+<p><a name="auth_step2"></a><br></p><hr>
+
+<p><a name="rfc.section.6.2"></a></p><h3>6.2.&nbsp;
+Obtaining User Authorization</h3>
+
+<p>
+ The Consumer cannot use the Request Token until it has been
+ authorized by the User. Obtaining User authorization includes
+ the following steps:
+
+</p>
+
+<p><a name="user_auth_redirected"></a><br></p><hr>
+
+<p><a name="rfc.section.6.2.1"></a></p><h3>6.2.1.&nbsp;
+Consumer Directs the User to the Service Provider</h3>
+
+<p>
+ In order for the Consumer to be able to exchange the Request Token
+ for an Access Token, the Consumer MUST obtain approval from the
+ User by directing the User to the Service Provider. The Consumer
+ constructs an HTTP GET request to the Service Provider’s
+ User Authorization URL with the following parameter:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_token:</dt>
+<dd>
+ OPTIONAL. The Request Token obtained in the previous step. The
+ Service Provider MAY declare this parameter as REQUIRED, or
+ accept requests to the User Authorization URL without it, in
+ which case it will prompt the User to enter it manually.
+
+</dd>
+<dt>oauth_callback:</dt>
+<dd>
+ OPTIONAL. The Consumer MAY specify a URL the Service Provider
+ will use to redirect the User back to the Consumer when
+ <a class="info" href="#auth_step2">Obtaining User Authorization<span> (</span><span class="info">Obtaining User Authorization</span><span>)</span></a>
+ is complete.
+
+</dd>
+<dt>Additional parameters:</dt>
+<dd>
+ Any additional parameters, as defined by the Service Provider.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ Once the request URL has been constructed the Consumer redirects
+ the User to the URL via the User’s web browser. If the Consumer is
+ incapable of automatic HTTP redirection, the Consumer SHALL notify
+ the User how to manually go to the constructed request URL.
+
+</p>
+
+<p>
+ Note: If a Service Provider knows a Consumer to be running on a
+ mobile device or set-top box, the Service Provider SHOULD ensure
+ that the User Authorization URL and Request Token are suitable
+ for manual entry.
+
+</p>
+
+<p><a name="anchor10"></a><br></p><hr>
+
+<p><a name="rfc.section.6.2.2"></a></p><h3>6.2.2.&nbsp;
+Service Provider Authenticates the User and Obtains Consent</h3>
+
+<p>
+ The Service Provider verifies the User’s identity and asks for
+ consent as detailed. OAuth does not specify how the Service Provider
+ authenticates the User. However, it does define a set of REQUIRED
+ steps:
+
+ </p>
+<ul class="text">
+<li>
+ The Service Provider MUST first verify the User’s identity
+ before asking for consent. It MAY prompt the User to sign
+ in if the User has not already done so.
+
+</li>
+<li>
+ The Service Provider presents to the User information about the
+ Consumer requesting access (as registered by the Consumer
+ Developer). The information includes the duration of the
+ access and the Protected Resources provided. The information
+ MAY include other details specific to the Service Provider.
+
+</li>
+<li>
+ The User MUST grant or deny permission for the Service Provider
+ to give the Consumer access to the Protected Resources on
+ behalf of the User. If the User denies the Consumer access, the
+ Service Provider MUST NOT allow access to the Protected
+ Resources.
+
+</li>
+</ul><p>
+
+</p>
+
+<p>
+ When displaying any identifying information about the Consumer to
+ the User based on the Consumer Key, the Service Provider MUST
+ inform the User if it is unable to assure the Consumer’s true
+ identity. The method in which the Service Provider informs the User
+ and the quality of the identity assurance is beyond the scope of
+ this specification.
+
+</p>
+
+<p><a name="anchor11"></a><br></p><hr>
+
+<p><a name="rfc.section.6.2.3"></a></p><h3>6.2.3.&nbsp;
+Service Provider Directs the User Back to the Consumer</h3>
+
+<p>
+ After the User authenticates with the Service Provider and grants
+ permission for Consumer access, the Consumer MUST be notified that
+ the Request Token has been authorized and ready to be exchanged for
+ an Access Token. If the User denies access, the Consumer MAY be
+ notified that the Request Token has been revoked.
+
+</p>
+
+<p>
+ If the Consumer provided a callback URL in <tt>oauth_callback</tt> (as
+ described in <a class="info" href="#user_auth_redirected">Consumer Directs the User to the Service Provider<span> (</span><span class="info">Consumer Directs the User to the Service Provider</span><span>)</span></a>),
+ the Service Provider constructs an HTTP GET request URL, and
+ redirects the User’s web browser to that URL with the following
+ parameters:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_token:</dt>
+<dd>
+ The Request Token the User authorized or denied.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ The callback URL MAY include Consumer provided query parameters.
+ The Service Provider MUST retain them unmodified and append the
+ <tt>oauth_token</tt> parameter to the existing query.
+
+</p>
+
+<p>
+ If no callback URL was provided, the Service Provider instructs
+ the User to manually inform the Consumer that authorization has
+ completed.
+
+</p>
+
+<p><a name="auth_step3"></a><br></p><hr>
+
+<p><a name="rfc.section.6.3"></a></p><h3>6.3.&nbsp;
+Obtaining an Access Token</h3>
+
+<p>
+ The Consumer exchanges the Request Token for an Access Token capable
+ of accessing the Protected Resources. Obtaining an Access Token
+ includes the following steps:
+
+</p>
+
+<p><a name="anchor12"></a><br></p><hr>
+
+<p><a name="rfc.section.6.3.1"></a></p><h3>6.3.1.&nbsp;
+Consumer Requests an Access Token</h3>
+
+<p>
+ The Request Token and Token Secret MUST be exchanged for an Access
+ Token and Token Secret.
+
+</p>
+
+<p>
+ To request an Access Token, the Consumer makes an HTTP request to
+ the Service Provider’s Access Token URL. The Service Provider
+ documentation specifies the HTTP method for this request, and HTTP POST
+ is RECOMMENDED. The request MUST be signed per
+ <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>,
+ and contains the following parameters:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_consumer_key:</dt>
+<dd>
+ The Consumer Key.
+
+</dd>
+<dt>oauth_token:</dt>
+<dd>
+ The Request Token obtained previously.
+
+</dd>
+<dt>oauth_signature_method:</dt>
+<dd>
+ The signature method the Consumer used to sign the request.
+
+</dd>
+<dt>oauth_signature:</dt>
+<dd>
+ The signature as defined in <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_timestamp:</dt>
+<dd>
+ As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_nonce:</dt>
+<dd>
+ As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_version:</dt>
+<dd>
+ OPTIONAL. If present, value MUST be <tt>
+ 1.0
+ </tt>. Service Providers
+ MUST assume the protocol version to be <tt>1.0</tt> if this parameter
+ is not present. Service Providers’ response to non-<tt>1.0</tt> value
+ is left undefined.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ No additional Service Provider specific parameters are allowed when
+ requesting an Access Token to ensure all Token related information
+ is present prior to seeking User approval.
+
+</p>
+
+<p><a name="access_grant"></a><br></p><hr>
+
+<p><a name="rfc.section.6.3.2"></a></p><h3>6.3.2.&nbsp;
+Service Provider Grants an Access Token</h3>
+
+<p>
+ The Service Provider MUST ensure that:
+
+ </p>
+<ul class="text">
+<li>
+ The request signature has been successfully verified.
+
+</li>
+<li>
+ The Request Token has never been exchanged for an Access Token.
+
+</li>
+<li>
+ The Request Token matches the Consumer Key.
+
+</li>
+</ul><p>
+
+</p>
+
+<p>
+ If successful, the Service Provider generates an Access Token and
+ Token Secret and returns them in the HTTP response body as defined
+ in <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
+ The Access Token and Token Secret are stored by the Consumer and
+ used when signing Protected Resources requests. The response
+ contains the following parameters:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_token:</dt>
+<dd>
+ The Access Token.
+
+</dd>
+<dt>oauth_token_secret:</dt>
+<dd>
+ The Token Secret.
+
+</dd>
+<dt>Additional parameters:</dt>
+<dd>
+ Any additional parameters, as defined by the Service Provider.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ If the request fails verification or is rejected for other reasons,
+ the Service Provider SHOULD respond with the appropriate response
+ code as defined in <a class="info" href="#http_codes">HTTP Response Codes<span> (</span><span class="info">HTTP Response Codes</span><span>)</span></a>.
+ The Service Provider MAY include some further details about why the
+ request was rejected in the HTTP response body as defined in
+ <a class="info" href="#response_parameters">Service Provider Response Parameters<span> (</span><span class="info">Service Provider Response Parameters</span><span>)</span></a>.
+
+</p>
+
+<p><a name="anchor13"></a><br></p><hr>
+
+<p><a name="rfc.section.7"></a></p><h3>7.&nbsp;
+Accessing Protected Resources</h3>
+
+<p>
+ After successfully receiving the Access Token and Token Secret, the
+ Consumer is able to access the Protected Resources on behalf of the
+ User. The request MUST be signed per
+ <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>, and
+ contains the following parameters:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_consumer_key:</dt>
+<dd>
+ The Consumer Key.
+
+</dd>
+<dt>oauth_token:</dt>
+<dd>
+ The Access Token.
+
+</dd>
+<dt>oauth_signature_method:</dt>
+<dd>
+ The signature method the Consumer used to sign the request.
+
+</dd>
+<dt>oauth_signature:</dt>
+<dd>
+ The signature as defined in
+ <a class="info" href="#signing_process">Signing Requests<span> (</span><span class="info">Signing Requests</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_timestamp:</dt>
+<dd>
+ As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_nonce:</dt>
+<dd>
+ As defined in <a class="info" href="#nonce">Nonce and Timestamp<span> (</span><span class="info">Nonce and Timestamp</span><span>)</span></a>.
+
+</dd>
+<dt>oauth_version:</dt>
+<dd>
+ OPTIONAL. If present, value MUST be <tt>1.0</tt>. Service Providers
+ MUST assume the protocol version to be <tt>1.0</tt> if this parameter
+ is not present. Service Providers’ response to non-<tt>1.0</tt> value
+ is left undefined.
+
+</dd>
+<dt>Additional parameters:</dt>
+<dd>
+ Any additional parameters, as defined by the Service Provider.
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p><a name="nonce"></a><br></p><hr>
+
+<p><a name="rfc.section.8"></a></p><h3>8.&nbsp;
+Nonce and Timestamp</h3>
+
+<p>
+ Unless otherwise specified by the Service Provider, the timestamp is
+ expressed in the number of seconds since January 1, 1970 00:00:00 GMT.
+ The timestamp value MUST be a positive integer and MUST be equal or
+ greater than the timestamp used in previous requests.
+
+</p>
+
+<p>
+ The Consumer SHALL then generate a Nonce value that is unique for all
+ requests with that timestamp. A nonce is a random string, uniquely
+ generated for each request. The nonce allows the Service Provider to
+ verify that a request has never been made before and helps prevent
+ replay attacks when requests are made over a non-secure channel
+ (such as HTTP).
+
+</p>
+
+<p><a name="signing_process"></a><br></p><hr>
+
+<p><a name="rfc.section.9"></a></p><h3>9.&nbsp;
+Signing Requests</h3>
+
+<p>
+ All Token requests and Protected Resources requests MUST be
+ signed by the Consumer and verified by the Service Provider.
+ The purpose of signing requests is to prevent unauthorized parties
+ from using the Consumer Key and Tokens when making Token requests or
+ Protected Resources requests. The signature process encodes
+ the Consumer Secret and Token Secret into a verifiable value which is
+ included with the request.
+
+</p>
+
+<p>
+ OAuth does not mandate a particular signature method, as each
+ implementation can have its own unique requirements. The protocol
+ defines three signature methods: <tt>HMAC-SHA1</tt>,
+ <tt>RSA-SHA1</tt>, and
+ <tt>PLAINTEXT</tt>, but Service Providers
+ are free to implement and document their own methods.
+ Recommending any particular method is beyond the scope of this specification.
+
+</p>
+
+<p>
+ The Consumer declares a signature method in the <tt>oauth_signature_method</tt>
+ parameter, generates a signature, and stores it in the <tt>oauth_signature</tt>
+ parameter. The Service Provider verifies the signature as specified in
+ each method. When verifying a Consumer signature, the Service Provider
+ SHOULD check the request nonce to ensure it has not been used in a
+ previous Consumer request.
+
+</p>
+
+<p>
+ The signature process MUST NOT change the request parameter names or
+ values, with the exception of the <tt>oauth_signature</tt> parameter.
+
+</p>
+
+<p><a name="anchor14"></a><br></p><hr>
+
+<p><a name="rfc.section.9.1"></a></p><h3>9.1.&nbsp;
+Signature Base String</h3>
+
+<p>
+ The Signature Base String is a consistent reproducible concatenation
+ of the request elements into a single string. The string is used as an
+ input in hashing or signing algorithms. The <tt>HMAC-SHA1</tt> signature
+ method provides both a standard and an example of using the Signature
+ Base String with a signing algorithm to generate signatures. All
+ the request parameters MUST be encoded as described in
+ <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a> prior to
+ constructing the Signature Base String.
+
+</p>
+
+<p><a name="sig_norm_param"></a><br></p><hr>
+
+<p><a name="rfc.section.9.1.1"></a></p><h3>9.1.1.&nbsp;
+Normalize Request Parameters</h3>
+
+<p>
+ The request parameters are collected, sorted and concatenated into
+ a normalized string:
+
+ </p>
+<ul class="text">
+<li>
+ Parameters in the <a class="info" href="#auth_header_authorization">OAuth HTTP Authorization header<span> (</span><span class="info">Authorization Header</span><span>)</span></a> excluding the <tt>realm</tt>
+ parameter.
+
+</li>
+<li>
+ Parameters in the HTTP POST request body (with a
+ <tt>content-type</tt> of
+ <tt>application/x-www-form-urlencoded</tt>).
+
+</li>
+<li>
+ HTTP GET parameters added to the URLs in the query part (as defined by
+ <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a> section 3).
+
+</li>
+</ul><p>
+
+</p>
+
+<p>
+ The <tt>oauth_signature</tt> parameter MUST be
+ excluded.
+
+</p>
+
+<p>
+ The parameters are normalized into a single string as follows:
+
+ </p>
+<ol class="text">
+<li>
+ Parameters are sorted by name, using lexicographical byte value
+ ordering. If two or more parameters share the same name, they
+ are sorted by their value. For example:
+
+ <div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> a=1, c=hi%20there, f=25, f=50, f=a, z=p, z=t
+</pre></div>
+
+</li>
+<li>
+ Parameters are concatenated in their sorted order into a single
+ string. For each parameter, the name is separated from the
+ corresponding value by an ‘=’ character (ASCII code 61), even
+ if the value is empty. Each name-value pair is separated by an
+ ‘&amp;’ character (ASCII code 38). For example:
+
+ <div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> a=1&amp;c=hi%20there&amp;f=25&amp;f=50&amp;f=a&amp;z=p&amp;z=t
+</pre></div>
+
+</li>
+</ol><p>
+
+</p>
+
+<p><a name="sig_url"></a><br></p><hr>
+
+<p><a name="rfc.section.9.1.2"></a></p><h3>9.1.2.&nbsp;
+Construct Request URL</h3>
+
+<p>
+ The Signature Base String includes the request absolute URL, tying
+ the signature to a specific endpoint. The URL used in the Signature
+ Base String MUST include the scheme, authority, and path, and MUST
+ exclude the query and fragment as defined by <a class="info" href="#RFC3986">[RFC3986]<span> (</span><span class="info">Berners-Lee, T., “Uniform Resource Identifiers (URI): Generic Syntax,” .</span><span>)</span></a>
+ section 3.
+
+</p>
+
+<p>
+ If the absolute request URL is not available to the Service Provider
+ (it is always available to the Consumer), it can be constructed by
+ combining the scheme being used, the HTTP <tt>Host</tt>
+ header, and the relative HTTP request URL. If the
+ <tt>Host</tt> header is not available, the Service
+ Provider SHOULD use the host name communicated to the Consumer in the
+ documentation or other means.
+
+</p>
+
+<p>
+ The Service Provider SHOULD document the form of URL used in the
+ Signature Base String to avoid ambiguity due to URL normalization.
+ Unless specified, URL scheme and authority MUST be lowercase and
+ include the port number; <tt>http</tt> default
+ port 80 and <tt>https</tt> default port 443 MUST
+ be excluded.
+
+</p>
+
+<p>
+ For example, the request:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> HTTP://Example.com:80/resource?id=123
+</pre></div><p>
+
+
+ Is included in the Signature Base String as:
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://example.com/resource
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor15"></a><br></p><hr>
+
+<p><a name="rfc.section.9.1.3"></a></p><h3>9.1.3.&nbsp;
+Concatenate Request Elements</h3>
+
+<p>
+ The following items MUST be concatenated in order into a single
+ string. Each item is <a class="info" href="#encoding_parameters">encoded<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>
+ and separated by an ‘&amp;’ character (ASCII code 38), even if empty.
+
+ </p>
+<ol class="text">
+<li>
+ The HTTP request method used to send the request. Value MUST be
+ uppercase, for example: <tt>HEAD</tt>, <tt>
+ GET
+ </tt>, <tt>POST</tt>, etc.
+
+</li>
+<li>
+ The request URL from <a class="info" href="#sig_url">Section&nbsp;9.1.2<span> (</span><span class="info">Construct Request URL</span><span>)</span></a>.
+
+</li>
+<li>
+ The normalized request parameters string from <a class="info" href="#sig_norm_param">Section&nbsp;9.1.1<span> (</span><span class="info">Normalize Request Parameters</span><span>)</span></a>.
+
+</li>
+</ol><p>
+
+</p>
+
+<p>
+ See Signature Base String example in <a class="info" href="#sig_base_example">Appendix&nbsp;A.5.1<span> (</span><span class="info">Generating Signature Base String</span><span>)</span></a>.
+
+</p>
+
+<p><a name="anchor16"></a><br></p><hr>
+
+<p><a name="rfc.section.9.2"></a></p><h3>9.2.&nbsp;
+HMAC-SHA1</h3>
+
+<p>
+ The <tt>HMAC-SHA1</tt> signature method uses the HMAC-SHA1 signature
+ algorithm as defined in <a class="info" href="#RFC2104">[RFC2104]<span> (</span><span class="info">Krawczyk, H., Bellare, M., and R. Canetti, “HMAC: Keyed-Hashing for Message Authentication,” .</span><span>)</span></a> where the Signature
+ Base String is the <tt>text</tt> and the
+ <tt>key</tt> is the concatenated values
+ (each first encoded per <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>)
+ of the Consumer Secret and Token Secret, separated by an ‘&amp;’
+ character (ASCII code 38) even if empty.
+
+</p>
+
+<p><a name="anchor17"></a><br></p><hr>
+
+<p><a name="rfc.section.9.2.1"></a></p><h3>9.2.1.&nbsp;
+Generating Signature</h3>
+
+<p>
+ <tt>oauth_signature</tt> is set
+ to the calculated <tt>digest</tt> octet string, first base64-encoded per
+ <a class="info" href="#RFC2045">[RFC2045]<span> (</span><span class="info">Freed, N. and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,” .</span><span>)</span></a> section 6.8, then URL-encoded per
+ <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>.
+
+</p>
+
+<p><a name="anchor18"></a><br></p><hr>
+
+<p><a name="rfc.section.9.2.2"></a></p><h3>9.2.2.&nbsp;
+Verifying Signature</h3>
+
+<p>
+ The Service Provider verifies the request by generating a new request
+ signature octet string, and comparing it to the signature provided by the Consumer,
+ first URL-decoded per <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>,
+ then base64-decoded per <a class="info" href="#RFC2045">[RFC2045]<span> (</span><span class="info">Freed, N. and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,” .</span><span>)</span></a> section 6.8.
+ The signature is generated using the request parameters as provided
+ by the Consumer, and the Consumer Secret and Token Secret as stored
+ by the Service Provider.
+
+</p>
+
+<p><a name="anchor19"></a><br></p><hr>
+
+<p><a name="rfc.section.9.3"></a></p><h3>9.3.&nbsp;
+RSA-SHA1</h3>
+
+<p>
+ The <tt>RSA-SHA1</tt> signature method uses the
+ RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ <a class="info" href="#RFC3447">[RFC3447]<span> (</span><span class="info">Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1,” .</span><span>)</span></a> section 8.2 (more simply known as PKCS#1),
+ using SHA-1 as the hash function for EMSA-PKCS1-v1_5. It is assumed
+ that the Consumer has provided its RSA public key in a verified way
+ to the Service Provider, in a manner which is beyond the scope of
+ this specification.
+
+</p>
+
+<p><a name="anchor20"></a><br></p><hr>
+
+<p><a name="rfc.section.9.3.1"></a></p><h3>9.3.1.&nbsp;
+Generating Signature</h3>
+
+<p>
+ The Signature Base String is signed using the Consumer’s RSA private
+ key per <a class="info" href="#RFC3447">[RFC3447]<span> (</span><span class="info">Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1,” .</span><span>)</span></a> section 8.2.1, where <tt>K</tt> is the
+ Consumer’s RSA private key, <tt>M</tt> the Signature Base String, and <tt>S</tt> is
+ the result signature octet string:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> S = RSASSA-PKCS1-V1_5-SIGN (K, M)
+</pre></div><p>
+
+
+</p>
+
+<p>
+ <tt>oauth_signature</tt> is set to <tt>S</tt>, first base64-encoded per
+ <a class="info" href="#RFC2045">[RFC2045]<span> (</span><span class="info">Freed, N. and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,” .</span><span>)</span></a> section 6.8, then URL-encoded per
+ <a class="info" href="#encoding_parameters">Parameter Encoding<span> (</span><span class="info">Parameter Encoding</span><span>)</span></a>.
+
+</p>
+
+<p><a name="anchor21"></a><br></p><hr>
+
+<p><a name="rfc.section.9.3.2"></a></p><h3>9.3.2.&nbsp;
+Verifying Signature</h3>
+
+<p>
+ The Service Provider verifies the signature per <a class="info" href="#RFC3447">[RFC3447]<span> (</span><span class="info">Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1,” .</span><span>)</span></a>
+ section 8.2.2, where <tt>
+ (n, e)
+ </tt> is the Consumer’s RSA public key, <tt>M</tt>
+ is the Signature Base String, and <tt>S</tt> is the octet string
+ representation of the <tt>oauth_signature</tt> value:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> RSASSA-PKCS1-V1_5-VERIFY ((n, e), M, S)
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor22"></a><br></p><hr>
+
+<p><a name="rfc.section.9.4"></a></p><h3>9.4.&nbsp;
+PLAINTEXT</h3>
+
+<p>
+ The <tt>
+ PLAINTEXT
+ </tt> method does not provide any security protection and
+ SHOULD only be used over a secure channel such as HTTPS. It does not
+ use the Signature Base String.
+
+</p>
+
+<p><a name="anchor23"></a><br></p><hr>
+
+<p><a name="rfc.section.9.4.1"></a></p><h3>9.4.1.&nbsp;
+Generating Signature</h3>
+
+<p>
+ <tt>oauth_signature</tt> is set to the concatenated encoded values of the
+ Consumer Secret and Token Secret, separated by a ‘&amp;’ character (ASCII
+ code 38), even if either secret is empty. The result MUST be encoded again.
+
+</p>
+
+<p>
+ These examples show the value of <tt>oauth_signature</tt>
+ for Consumer Secret <tt>djr9rjt0jd78jf88</tt> and
+ 3 different Token Secrets:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>jjd999tj88uiths3:</dt>
+<dd>
+ <tt>oauth_signature</tt>=<tt>djr9rjt0jd78jf88%26jjd999tj88uiths3</tt>
+
+</dd>
+<dt>jjd99$tj88uiths3:</dt>
+<dd>
+ <tt>oauth_signature</tt>=<tt>djr9rjt0jd78jf88%26jjd99%2524tj88uiths3</tt>
+
+</dd>
+<dt>Empty:</dt>
+<dd>
+ <tt>oauth_signature</tt>=<tt>djr9rjt0jd78jf88%26</tt>
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p><a name="anchor24"></a><br></p><hr>
+
+<p><a name="rfc.section.9.4.2"></a></p><h3>9.4.2.&nbsp;
+Verifying Signature</h3>
+
+<p>
+ The Service Provider verifies the request by breaking the signature
+ value into the Consumer Secret and Token Secret, and ensures they
+ match the secrets stored locally.
+
+</p>
+
+<p><a name="http_codes"></a><br></p><hr>
+
+<p><a name="rfc.section.10"></a></p><h3>10.&nbsp;
+HTTP Response Codes</h3>
+
+<p>
+ This section applies only to the Request Token and Access Token
+ requests. In general, the Service Provider SHOULD use the
+ response codes defined in <a class="info" href="#RFC2616">[RFC2616]<span> (</span><span class="info">Fielding,
+R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T.
+Berners-Lee, “Hypertext Transfer Protocol – HTTP/1.1,” .</span><span>)</span></a> Section 10. When
+ the Service Provider rejects a Consumer request, it SHOULD respond with
+ HTTP 400 Bad Request or HTTP 401 Unauthorized.
+
+ </p>
+<ul class="text">
+<li>
+ HTTP 400 Bad Request
+
+<ul class="text">
+<li>
+ Unsupported parameter
+
+</li>
+<li>
+ Unsupported signature method
+
+</li>
+<li>
+ Missing required parameter
+
+</li>
+<li>
+ Duplicated OAuth Protocol Parameter
+
+</li>
+</ul>
+
+</li>
+<li>
+ HTTP 401 Unauthorized
+
+<ul class="text">
+<li>
+ Invalid Consumer Key
+
+</li>
+<li>
+ Invalid / expired Token
+
+</li>
+<li>
+ Invalid signature
+
+</li>
+<li>
+ Invalid / used nonce
+
+</li>
+</ul>
+
+</li>
+</ul><p>
+
+</p>
+
+<p><a name="anchor25"></a><br></p><hr>
+
+<p><a name="rfc.section.A"></a></p><h3>Appendix A.&nbsp;
+Appendix A - Protocol Example</h3>
+
+<p>
+ In this example, the Service Provider photos.example.net is a photo
+ sharing website, and the Consumer printer.example.com is a photo
+ printing website. Jane, the User, would like printer.example.com to
+ print the private photo <tt>
+ vacation.jpg
+ </tt> stored at photos.example.net.
+
+</p>
+
+<p>
+ When Jane signs-into photos.example.net using her username and
+ password, she can access the photo by going to the URL
+ <tt>http://photos.example.net/photo?file=vacation.jpg</tt>. Other Users
+ cannot access that photo, and Jane does not want to share her
+ username and password with printer.example.com.
+
+</p>
+
+<p>
+ The requests in this example use the URL query method when sending
+ parameters. This is done to simplify the example and should not be
+ taken as an endorsement of one method over the others.
+
+</p>
+
+<p><a name="anchor26"></a><br></p><hr>
+
+<p><a name="rfc.section.A.1"></a></p><h3>Appendix A.1.&nbsp;
+Documentation and Registration</h3>
+
+<p>
+ The Service Provider documentation explains how to register for a
+ Consumer Key and Consumer Secret, and declares the following URLs:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>Request Token URL:</dt>
+<dd>
+ https://photos.example.net/request_token, using HTTP POST
+
+</dd>
+<dt>User Authorization URL:</dt>
+<dd>
+ http://photos.example.net/authorize, using HTTP GET
+
+</dd>
+<dt>Access Token URL:</dt>
+<dd>
+ https://photos.example.net/access_token, using HTTP POST
+
+</dd>
+<dt>Photo (Protected Resource) URL:</dt>
+<dd>
+ http://photos.example.net/photo with required parameter
+ <tt>file</tt> and optional parameter <tt>size</tt>
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ The Service Provider declares support for the <tt>
+ HMAC-SHA1
+ </tt> signature
+ method for all requests, and <tt>PLAINTEXT</tt> only for secure (HTTPS)
+ requests.
+
+</p>
+
+<p>
+ The Consumer printer.example.com already established a Consumer Key
+ and Consumer Secret with photos.example.net and advertizes its
+ printing services for photos stored on photos.example.net. The
+ Consumer registration is:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>Consumer Key:</dt>
+<dd>
+ <tt>
+ dpf43f3p2l4k3l03
+ </tt>
+
+</dd>
+<dt>Consumer Secret:</dt>
+<dd>
+ <tt>kd94hf93k423kf44</tt>
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p><a name="anchor27"></a><br></p><hr>
+
+<p><a name="rfc.section.A.2"></a></p><h3>Appendix A.2.&nbsp;
+Obtaining a Request Token</h3>
+
+<p>
+ After Jane informs printer.example.com that she would like to print
+ her vacation photo stored at photos.example.net, the printer website
+ tries to access the photo and receives HTTP 401 Unauthorized
+ indicating it is private. The Service Provider includes the following
+ header with the response:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> WWW-Authenticate: OAuth realm="http://photos.example.net/"
+</pre></div><p>
+
+
+</p>
+
+<p>
+ The Consumer sends the following HTTP POST request to the Service
+ Provider:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> https://photos.example.net/request_token?oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_signature_method=PLAINTEXT&amp;oauth_signature=kd94hf93k423kf44%26&amp;oauth_timestamp=1191242090&amp;oauth_nonce=hsu94j3884jdopsl&amp;oauth_version=1.0
+</pre></div><p>
+
+
+</p>
+
+<p>
+ The Service Provider checks the signature and replies with an
+ unauthorized Request Token in the body of the HTTP response:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> oauth_token=hh5s93j4hdidpola&amp;oauth_token_secret=hdhd0244k9j7ao03
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor28"></a><br></p><hr>
+
+<p><a name="rfc.section.A.3"></a></p><h3>Appendix A.3.&nbsp;
+Requesting User Authorization</h3>
+
+<p>
+ The Consumer redirects Jane’s browser to the Service Provider
+ User Authorization URL to obtain Jane’s approval for accessing
+ her private photos.
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://photos.example.net/authorize?oauth_token=hh5s93j4hdidpola&amp;oauth_callback=http%3A%2F%2Fprinter.example.com%2Frequest_token_ready
+</pre></div><p>
+
+
+</p>
+
+<p>
+ The Service Provider asks Jane to sign-in using her username and
+ password and, if successful, asks her if she approves granting
+ printer.example.com access to her private photos. If Jane approves
+ the request, the Service Provider redirects her back to the
+ Consumer’s callback URL:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://printer.example.com/request_token_ready?oauth_token=hh5s93j4hdidpola
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor29"></a><br></p><hr>
+
+<p><a name="rfc.section.A.4"></a></p><h3>Appendix A.4.&nbsp;
+Obtaining an Access Token</h3>
+
+<p>
+ Now that the Consumer knows Jane approved the Request Token, it
+ asks the Service Provider to exchange it for an Access Token:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> https://photos.example.net/access_token?oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_token=hh5s93j4hdidpola&amp;oauth_signature_method=PLAINTEXT&amp;oauth_signature=kd94hf93k423kf44%26hdhd0244k9j7ao03&amp;oauth_timestamp=1191242092&amp;oauth_nonce=dji430splmx33448&amp;oauth_version=1.0
+</pre></div><p>
+
+
+</p>
+
+<p>
+ The Service Provider checks the signature and replies with an
+ Access Token in the body of the HTTP response:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> oauth_token=nnch734d00sl2jdk&amp;oauth_token_secret=pfkkdhi9sl3r4s00
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor30"></a><br></p><hr>
+
+<p><a name="rfc.section.A.5"></a></p><h3>Appendix A.5.&nbsp;
+Accessing Protected Resources</h3>
+
+<p>
+ The Consumer is now ready to request the private photo. Since the
+ photo URL is not secure (HTTP), it must use <tt>HMAC-SHA1</tt>.
+
+</p>
+
+<p><a name="sig_base_example"></a><br></p><hr>
+
+<p><a name="rfc.section.A.5.1"></a></p><h3>Appendix A.5.1.&nbsp;
+Generating Signature Base String</h3>
+
+<p>
+ To generate the signature, it first needs to generate the Signature
+ Base String. The request contains the following parameters
+ (<tt>oauth_signature</tt> excluded) which are ordered and concatenated into
+ a normalized string:
+
+ </p>
+<blockquote class="text"><dl>
+<dt>oauth_consumer_key:</dt>
+<dd>
+ <tt>dpf43f3p2l4k3l03</tt>
+
+</dd>
+<dt>oauth_token:</dt>
+<dd>
+ <tt>nnch734d00sl2jdk</tt>
+
+</dd>
+<dt>oauth_signature_method:</dt>
+<dd>
+ <tt>HMAC-SHA1</tt>
+
+</dd>
+<dt>oauth_timestamp:</dt>
+<dd>
+ <tt>1191242096</tt>
+
+</dd>
+<dt>oauth_nonce:</dt>
+<dd>
+ <tt>kllo9940pd9333jh</tt>
+
+</dd>
+<dt>oauth_version:</dt>
+<dd>
+ <tt>1.0</tt>
+
+</dd>
+<dt>file:</dt>
+<dd>
+ <tt>vacation.jpg</tt>
+
+</dd>
+<dt>size:</dt>
+<dd>
+ <tt>original</tt>
+
+</dd>
+</dl></blockquote><p>
+
+</p>
+
+<p>
+ The following inputs are used to generate the Signature Base String:
+
+ </p>
+<ol class="text">
+<li>
+ <tt>GET</tt>
+
+</li>
+<li>
+ <tt>http://photos.example.net/photos</tt>
+
+</li>
+<li>
+ <tt>file=vacation.jpg&amp;oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_nonce=kllo9940pd9333jh&amp;oauth_signature_method=HMAC-SHA1&amp;oauth_timestamp=1191242096&amp;oauth_token=nnch734d00sl2jdk&amp;oauth_version=1.0&amp;size=original</tt>
+
+</li>
+</ol><p>
+
+</p>
+
+<p>
+ The Signature Base String is:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> GET&amp;http%3A%2F%2Fphotos.example.net%2Fphotos&amp;file%3Dvacation.jpg%26oauth_consumer_key%3Ddpf43f3p2l4k3l03%26oauth_nonce%3Dkllo9940pd9333jh%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1191242096%26oauth_token%3Dnnch734d00sl2jdk%26oauth_version%3D1.0%26size%3Doriginal
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor31"></a><br></p><hr>
+
+<p><a name="rfc.section.A.5.2"></a></p><h3>Appendix A.5.2.&nbsp;
+Calculating Signature Value</h3>
+
+<p>
+ HMAC-SHA1 produces the following <tt>digest</tt> value as a base64-encoded
+ string (using the Signature Base String as <tt>text</tt> and
+ <tt>
+ kd94hf93k423kf44&amp;pfkkdhi9sl3r4s00
+ </tt> as <tt>key</tt>):
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> tR3+Ty81lMeYAr/Fid0kMTYa/WM=
+</pre></div><p>
+
+
+</p>
+
+<p><a name="anchor32"></a><br></p><hr>
+
+<p><a name="rfc.section.A.5.3"></a></p><h3>Appendix A.5.3.&nbsp;
+Requesting Protected Resource</h3>
+
+<p>
+ All together, the Consumer request for the photo is:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://photos.example.net/photos?file=vacation.jpg&amp;size=original
+
+ Authorization: OAuth realm="http://photos.example.net/",
+ oauth_consumer_key="dpf43f3p2l4k3l03",
+ oauth_token="nnch734d00sl2jdk",
+ oauth_signature_method="HMAC-SHA1",
+ oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D",
+ oauth_timestamp="1191242096",
+ oauth_nonce="kllo9940pd9333jh",
+ oauth_version="1.0"
+</pre></div><p>
+
+
+</p>
+
+<p>
+ And if using query parameters:
+
+ </p>
+<div style="display: table; width: 0pt; margin-left: 3em; margin-right: auto;"><pre> http://photos.example.net/photos?file=vacation.jpg&amp;size=original&amp;oauth_consumer_key=dpf43f3p2l4k3l03&amp;oauth_token=nnch734d00sl2jdk&amp;oauth_signature_method=HMAC-SHA1&amp;oauth_signature=tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D&amp;oauth_timestamp=1191242096&amp;oauth_nonce=kllo9940pd9333jh&amp;oauth_version=1.0
+</pre></div><p>
+
+
+</p>
+
+<p>
+ photos.example.net checks the signature and responds with the
+ requested photo.
+
+</p>
+
+<p><a name="anchor33"></a><br></p><hr>
+
+<p><a name="rfc.section.B"></a></p><h3>Appendix B.&nbsp;
+Security Considerations</h3>
+
+<p><a name="anchor34"></a><br></p><hr>
+
+<p><a name="rfc.section.B.1"></a></p><h3>Appendix B.1.&nbsp;
+Credentials and Token Exchange</h3>
+
+<p>
+ The OAuth specification does not describe any mechanism for protecting
+ Tokens and secrets from eavesdroppers when they are transmitted from
+ the Service Provider to the Consumer in <a class="info" href="#request_grant">Section&nbsp;6.1.2<span> (</span><span class="info">Service Provider Issues an Unauthorized Request Token</span><span>)</span></a>
+ and <a class="info" href="#access_grant">Section&nbsp;6.3.2<span> (</span><span class="info">Service Provider Grants an Access Token</span><span>)</span></a>. Service Providers should ensure
+ that these transmissions are protected using transport-layer mechanisms
+ such as TLS or SSL.
+
+</p>
+
+<p><a name="anchor35"></a><br></p><hr>
+
+<p><a name="rfc.section.B.2"></a></p><h3>Appendix B.2.&nbsp;
+PLAINTEXT Signature Method</h3>
+
+<p>
+ When used with <tt>PLAINTEXT</tt> signatures, the
+ OAuth protocol makes no attempts to protect User credentials from
+ eavesdroppers or man-in-the-middle attacks.
+ The <tt>PLAINTEXT</tt> signature algorithm is only
+ intended to be used in conjunction with a transport-layer security
+ mechanism such as TLS or SSL which does provide such protection.
+ If transport-layer protection is unavailable, the
+ <tt>PLAINTEXT</tt> signature method should not be
+ used.
+
+</p>
+
+<p><a name="anchor36"></a><br></p><hr>
+
+<p><a name="rfc.section.B.3"></a></p><h3>Appendix B.3.&nbsp;
+Confidentiality of Requests</h3>
+
+<p>
+ While OAuth provides a mechanism for verifying the integrity of
+ requests, it provides no guarantee of request confidentiality.
+ Unless further precautions are taken, eavesdroppers will have full
+ access to request content. Service Providers should carefully
+ consider the kinds of data likely to be sent as part of such requests,
+ and should employ transport-layer security mechanisms to protect
+ sensitive resources.
+
+</p>
+
+<p><a name="anchor37"></a><br></p><hr>
+
+<p><a name="rfc.section.B.4"></a></p><h3>Appendix B.4.&nbsp;
+Spoofing by Counterfeit Servers</h3>
+
+<p>
+ OAuth makes no attempt to verify the authenticity of the Service
+ Provider. A hostile party could take advantage of this by intercepting
+ the Consumer’s requests and returning misleading or otherwise incorrect
+ responses. Service providers should consider such attacks when
+ developing services based on OAuth, and should require transport-layer
+ security for any requests where the authenticity of the Service
+ Provider or of request responses is an issue.
+
+</p>
+
+<p><a name="anchor38"></a><br></p><hr>
+
+<p><a name="rfc.section.B.5"></a></p><h3>Appendix B.5.&nbsp;
+Proxying and Caching of Authenticated Content</h3>
+
+<p>
+ The <a class="info" href="#auth_header">HTTP Authorization scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a> is
+ optional. However, <a class="info" href="#RFC2616">[RFC2616]<span> (</span><span class="info">Fielding,
+R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T.
+Berners-Lee, “Hypertext Transfer Protocol – HTTP/1.1,” .</span><span>)</span></a> relies on the
+ <tt>Authorization</tt> and
+ <tt>WWW-Authenticate</tt> headers to distinguish
+ authenticated content so that it can be protected. Proxies and
+ caches, in particular, may fail to adequately protect requests not
+ using these headers.
+
+</p>
+
+<p>
+ For example, private authenticated content may be stored in (and thus
+ retrievable from) publicly-accessible caches. Service Providers not
+ using the <a class="info" href="#auth_header">HTTP Authorization scheme<span> (</span><span class="info">OAuth HTTP Authorization Scheme</span><span>)</span></a>
+ should take care to use other mechanisms, such as the
+ <tt>Cache-Control</tt> header, to ensure that
+ authenticated content is protected.
+
+</p>
+
+<p><a name="anchor39"></a><br></p><hr>
+
+<p><a name="rfc.section.B.6"></a></p><h3>Appendix B.6.&nbsp;
+Plaintext Storage of Credentials</h3>
+
+<p>
+ The Consumer Secret and Token Secret function the same way passwords
+ do in traditional authentication systems. In order to compute the
+ signatures used in the non-<tt>PLAINTEXT</tt>
+ methods, the Service Provider must have access to these secrets in
+ plaintext form. This is in contrast, for example, to modern operating
+ systems, which store only a one-way hash of user credentials.
+
+</p>
+
+<p>
+ If an attacker were to gain access to these secrets - or worse, to
+ the Service Provider’s database of all such secrets - he or she would
+ be able to perform any action on behalf of any User. Accordingly, it
+ is critical that Service Providers protect these secrets from
+ unauthorized access.
+
+</p>
+
+<p><a name="anchor40"></a><br></p><hr>
+
+<p><a name="rfc.section.B.7"></a></p><h3>Appendix B.7.&nbsp;
+Secrecy of the Consumer Secret</h3>
+
+<p>
+ In many applications, the Consumer application will be under the
+ control of potentially untrusted parties. For example, if the
+ Consumer is a freely available desktop application, an attacker may
+ be able to download a copy for analysis. In such cases, attackers
+ will be able to recover the Consumer Secret used to authenticate the
+ Consumer to the Service Provider.
+
+</p>
+
+<p>
+ Accordingly, Service Providers should not use the Consumer Secret
+ alone to verify the identity of the Consumer. Where possible, other
+ factors such as IP address should be used as well.
+
+</p>
+
+<p><a name="anchor41"></a><br></p><hr>
+
+<p><a name="rfc.section.B.8"></a></p><h3>Appendix B.8.&nbsp;
+Phishing Attacks</h3>
+
+<p>
+ Wide deployment of OAuth and similar protocols may cause
+ Users to become inured to the practice of being redirected to
+ websites where they are asked to enter their passwords. If Users are
+ not careful to verify the authenticity of these websites before
+ entering their credentials, it will be possible for attackers to
+ exploit this practice to steal Users’ passwords.
+
+</p>
+
+<p>
+ Service Providers should attempt to educate Users about the risks
+ phishing attacks pose, and should provide mechanisms that make it
+ easy for Users to confirm the authenticity of their sites.
+
+</p>
+
+<p><a name="anchor42"></a><br></p><hr>
+
+<p><a name="rfc.section.B.9"></a></p><h3>Appendix B.9.&nbsp;
+Scoping of Access Requests</h3>
+
+<p>
+ By itself, OAuth does not provide any method for scoping the access
+ rights granted to a Consumer. A Consumer either has access to
+ Protected Resources or it doesn’t. Many applications will, however,
+ require greater granularity of access rights. For example, Service
+ Providers may wish to make it possible to grant access to some
+ Protected Resources but not others, or to grant only limited access
+ (such as read-only access) to those Protected Resources.
+
+</p>
+
+<p>
+ When implementing OAuth, Service Providers should consider the types
+ of access Users may wish to grant Consumers, and should provide
+ mechanisms to do so. Service Providers should also take care to
+ ensure that Users understand the access they are granting, as well as
+ any risks that may be involved.
+
+</p>
+
+<p><a name="anchor43"></a><br></p><hr>
+
+<p><a name="rfc.section.B.10"></a></p><h3>Appendix B.10.&nbsp;
+Entropy of Secrets</h3>
+
+<p>
+ Unless a transport-layer security protocol is used, eavesdroppers will
+ have full access to OAuth requests and signatures, and will thus be
+ able to mount offline brute-force attacks to recover the Consumer’s
+ credentials used. Service Providers should be careful to assign Token
+ Secrets and Consumer Secrets which are long enough - and random enough
+ - to resist such attacks for at least the length of time that the
+ secrets are valid.
+
+</p>
+
+<p>
+ For example, if Token Secrets are valid for two weeks, Service
+ Providers should ensure that it is not possible to mount a brute force
+ attack that recovers the Token Secret in less than two weeks. Of
+ course, Service Providers are urged to err on the side of caution,
+ and use the longest secrets reasonable.
+
+</p>
+
+<p>
+ It is equally important that the pseudo-random number generator (PRNG)
+ used to generate these secrets be of sufficiently high quality. Many
+ PRNG implementations generate number sequences that may appear to be
+ random, but which nevertheless exhibit patterns or other weaknesses
+ which make cryptanalysis or brute force attacks easier. Implementors
+ should be careful to use cryptographically secure PRNGs to avoid these
+ problems.
+
+</p>
+
+<p><a name="anchor44"></a><br></p><hr>
+
+<p><a name="rfc.section.B.11"></a></p><h3>Appendix B.11.&nbsp;
+Denial of Service / Resource Exhaustion Attacks</h3>
+
+<p>
+ The OAuth protocol has a number of features which may make resource
+ exhaustion attacks against Service Providers possible. For example,
+ if a Service Provider includes a nontrivial amount of entropy in Token
+ Secrets as recommended above, then an attacker may be able to exhaust
+ the Service Provider’s entropy pool very quickly by repeatedly
+ obtaining Request Tokens from the Service Provider.
+
+</p>
+
+<p>
+ Similarly, OAuth requires Service Providers to track used nonces. If
+ an attacker is able to use many nonces quickly, the resources required
+ to track them may exhaust available capacity. And again, OAuth can
+ require Service Providers to perform potentially expensive computations
+ in order to verify the signature on incoming requests. An attacker may
+ exploit this to perform a denial of service attack by sending a large
+ number of invalid requests to the Service Provider.
+
+</p>
+
+<p>
+ Resource Exhaustion attacks are by no means specific to OAuth. However,
+ OAuth implementors should be careful to consider the additional
+ avenues of attack that OAuth exposes, and design their implementations
+ accordingly. For example, entropy starvation typically results in
+ either a complete denial of service while the system waits for new
+ entropy or else in weak (easily guessable) secrets. When implementing
+ OAuth, Service Providers should consider which of these presents a
+ more serious risk for their application and design accordingly.
+
+</p>
+
+<p><a name="anchor45"></a><br></p><hr>
+
+<p><a name="rfc.section.B.12"></a></p><h3>Appendix B.12.&nbsp;
+Cryptographic Attacks</h3>
+
+<p>
+ SHA-1, the hash algorithm used in <tt>HMAC-SHA1</tt>
+ signatures, has been <a class="info" href="#SHA1">shown<span> (</span><span class="info">De Canniere, C. and C. Rechberger, “Finding SHA-1 Characteristics: General Results and Applications,” .</span><span>)</span></a> [SHA1] to have a number
+ of cryptographic weaknesses that significantly reduce its resistance to
+ collision attacks. Practically speaking, these weaknesses are difficult
+ to exploit, and by themselves do not pose a significant risk to users
+ of OAuth. They may, however, make more efficient attacks possible, and
+ NIST has <a class="info" href="#NIST">announced<span> (</span><span class="info">National
+Institute of Standards and Technolog, NIST., “NIST Brief Comments on
+Recent Cryptanalytic Attacks on Secure Hashing Functions and the
+Continued Security Provided by SHA-1,” .</span><span>)</span></a> [NIST] that it will phase out
+ use of SHA-1 by 2010. Service Providers should take this into account
+ when considering whether SHA-1 provides an adequate level of security
+ for their applications.
+
+</p>
+
+<p><a name="anchor46"></a><br></p><hr>
+
+<p><a name="rfc.section.B.13"></a></p><h3>Appendix B.13.&nbsp;
+Signature Base String Compatibility</h3>
+
+<p>
+ The Signature Base String has been designed to support the signature
+ methods defined in this specification. When designing additional
+ signature methods, the Signature Base String should be evaluated to
+ ensure compatibility with the algorithms used.
+
+</p>
+
+<p>
+ The Signature Base String cannot guarantee the order in which parameters
+ are sent. If parameter ordering is important and affects the result of a
+ request, the Signature Base String will not protect against request
+ manipulation.
+
+</p>
+
+<p><a name="rfc.references1"></a><br></p><hr>
+
+<h3>11.&nbsp;References</h3>
+
+<table border="0" width="99%">
+<tbody><tr><td class="author-text" valign="top"><a name="NIST">[NIST]</a></td>
+<td class="author-text">National Institute of Standards and Technolog, NIST., “<a href="http://csrc.nist.gov/hash_standards_comments.pdf">NIST Brief Comments on Recent Cryptanalytic Attacks on Secure Hashing Functions and the Continued Security Provided by SHA-1</a>.”</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC2045">[RFC2045]</a></td>
+<td class="author-text">Freed, N. and N. Borenstein, “<a href="http://tools.ietf.org/html/rfc2045">Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</a>,” RFC&nbsp;2045.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC2104">[RFC2104]</a></td>
+<td class="author-text">Krawczyk, H., Bellare, M., and R. Canetti, “<a href="http://tools.ietf.org/html/rfc2104">HMAC: Keyed-Hashing for Message Authentication</a>,” RFC&nbsp;2104.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
+<td class="author-text">Bradner, B., “<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>,” RFC&nbsp;2119.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC2606">[RFC2606]</a></td>
+<td class="author-text">Eastlake, D. and A. Panitz, “<a href="http://tools.ietf.org/html/rfc2606">Reserved Top Level DNS Names</a>,” RFC&nbsp;2606.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC2616">[RFC2616]</a></td>
+<td class="author-text">Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, “<a href="http://tools.ietf.org/html/rfc2616">Hypertext Transfer Protocol – HTTP/1.1</a>,” RFC&nbsp;2616.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC2617">[RFC2617]</a></td>
+<td class="author-text">Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “<a href="http://tools.ietf.org/html/rfc2617">HTTP Authentication: Basic and Digest Access Authentication</a>,” RFC&nbsp;2617.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC3447">[RFC3447]</a></td>
+<td class="author-text">Jonsson, J. and B. Kaliski, “<a href="http://tools.ietf.org/html/rfc3447">Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography; Specifications Version 2.1</a>,” RFC&nbsp;3447.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC3629">[RFC3629]</a></td>
+<td class="author-text">Yergeau, F., “<a href="http://tools.ietf.org/html/rfc3629">UTF-8, a transformation format of Unicode and ISO 10646</a>,” RFC&nbsp;3629.</td></tr>
+<tr><td class="author-text" valign="top"><a name="RFC3986">[RFC3986]</a></td>
+<td class="author-text">Berners-Lee, T., “<a href="http://tools.ietf.org/html/rfc3986">Uniform Resource Identifiers (URI): Generic Syntax</a>,” RFC&nbsp;3986.</td></tr>
+<tr><td class="author-text" valign="top"><a name="SHA1">[SHA1]</a></td>
+<td class="author-text">De Canniere, C. and C. Rechberger, “<a href="http://dx.doi.org/10.1007/11935230_1">Finding SHA-1 Characteristics: General Results and Applications</a>.”</td></tr>
+</tbody></table>
+
+<p><a name="rfc.authors"></a><br></p><hr>
+
+<h3>Author’s Address</h3>
+
+<table border="0" cellpadding="0" cellspacing="0" width="99%">
+<tbody><tr><td class="author-text">&nbsp;</td>
+<td class="author-text">OAuth Core Workgroup</td></tr>
+<tr><td class="author" align="right">Email:&nbsp;</td>
+<td class="author-text"><a href="mailto:spec@oauth.net">spec@oauth.net</a></td></tr>
+</tbody></table>
+<script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ?
+ "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost +
+ "google-analytics.com/ga.js'
+type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+ var pageTracker = _gat._getTracker("UA-31771-2");
+ pageTracker._initData();
+ pageTracker._trackPageview();
+</script>
</body></html> \ No newline at end of file
diff --git a/lib/DotNetOpenId.BuildTasks.targets b/lib/DotNetOpenId.BuildTasks.targets
index 1eca8cb..a0adb00 100644
--- a/lib/DotNetOpenId.BuildTasks.targets
+++ b/lib/DotNetOpenId.BuildTasks.targets
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
- <PropertyGroup>
- <ProjectRoot Condition="'$(ProjectRoot)' == ''">$(MSBuildProjectDirectory)\..\..</ProjectRoot>
- </PropertyGroup>
-
- <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="GetBuildVersion" />
- <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="SetEnvironmentVariable" />
- <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="ChangeProjectReferenceToAssemblyReference" />
- <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="CompareFiles" />
-
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <ProjectRoot Condition="'$(ProjectRoot)' == ''">$(MSBuildProjectDirectory)\..\..</ProjectRoot>
+ </PropertyGroup>
+
+ <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="GetBuildVersion" />
+ <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="SetEnvironmentVariable" />
+ <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="ChangeProjectReferenceToAssemblyReference" />
+ <UsingTask AssemblyFile="$(ProjectRoot)\lib\DotNetOpenId.BuildTasks.dll" TaskName="CompareFiles" />
+
</Project> \ No newline at end of file
diff --git a/lib/DotNetOpenId.xml b/lib/DotNetOpenId.xml
index f9b815a..26ed5c5 100644
--- a/lib/DotNetOpenId.xml
+++ b/lib/DotNetOpenId.xml
@@ -1,6532 +1,6532 @@
-<?xml version="1.0"?>
-<doc>
- <assembly>
- <name>DotNetOpenId</name>
- </assembly>
- <members>
- <member name="T:DotNetOpenId.Association">
- <summary>
- Stores a secret used in signing and verifying messages.
- </summary>
- <remarks>
- OpenID associations may be shared between Provider and Relying Party (smart
- associations), or be a way for a Provider to recall its own secret for later
- (dumb associations).
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Association.#ctor(System.String,System.Byte[],System.TimeSpan,System.DateTime)">
- <summary>
- Instantiates an <see cref="T:DotNetOpenId.Association"/> object.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Association.Deserialize(System.String,System.DateTime,System.Byte[])">
- <summary>
- Re-instantiates an <see cref="T:DotNetOpenId.Association"/> previously persisted in a database or some
- other shared store.
- </summary>
- <param name="handle">
- The <see cref="P:DotNetOpenId.Association.Handle"/> property of the previous <see cref="T:DotNetOpenId.Association"/> instance.
- </param>
- <param name="expires">
- The value of the <see cref="P:DotNetOpenId.Association.Expires"/> property of the previous <see cref="T:DotNetOpenId.Association"/> instance.
- </param>
- <param name="privateData">
- The byte array returned by a call to <see cref="M:DotNetOpenId.Association.SerializePrivateData"/> on the previous
- <see cref="T:DotNetOpenId.Association"/> instance.
- </param>
- <returns>
- The newly dehydrated <see cref="T:DotNetOpenId.Association"/>, which can be returned
- from a custom association store's
- <see cref="M:DotNetOpenId.IAssociationStore`1.GetAssociation(`0)"/> method.
- </returns>
- </member>
- <member name="F:DotNetOpenId.Association.UnixEpoch">
- <summary>
- Represents January 1, 1970 12 AM.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Association.SerializePrivateData">
- <summary>
- Returns private data required to persist this <see cref="T:DotNetOpenId.Association"/> in
- permanent storage (a shared database for example) for deserialization later.
- </summary>
- <returns>
- An opaque byte array that must be stored and returned exactly as it is provided here.
- The byte array may vary in length depending on the specific type of <see cref="T:DotNetOpenId.Association"/>,
- but in current versions are no larger than 256 bytes.
- </returns>
- <remarks>
- Values of public properties on the base class <see cref="T:DotNetOpenId.Association"/> are not included
- in this byte array, as they are useful for fast database lookup and are persisted separately.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Association.GetAssociationType(DotNetOpenId.Protocol)">
- <summary>
- The string to pass as the assoc_type value in the OpenID protocol.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Association.Sign(System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IList{System.String},System.String)">
- <summary>
- Signs certain given key/value pairs in a supplied dictionary.
- </summary>
- <param name="data">
- A dictionary with key/value pairs, at least some of which you want to include in the signature.
- </param>
- <param name="keysToSign">
- A list of the keys in the supplied dictionary you wish to sign.
- </param>
- <param name="keyLookupPrefix">
- An optional prefix to use in front of a given name in <paramref name="fields"/>
- when looking up the value from <paramref name="data"/>.
- </param>
- <returns>The signature of the key-value pairs.</returns>
- </member>
- <member name="M:DotNetOpenId.Association.Sign(System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IList{System.String})">
- <summary>
- Generates a signature from a given dictionary.
- </summary>
- <param name="data">The dictionary. This dictionary will not be changed.</param>
- <param name="keyOrder">The order that the data in the dictionary must be encoded in for the signature to be valid.</param>
- <returns>The calculated signature of the data in the dictionary.</returns>
- </member>
- <member name="M:DotNetOpenId.Association.CreateHasher">
- <summary>
- Returns the specific hash algorithm used for message signing.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Association.cutToSecond(System.DateTime)">
- <summary>
- Rounds the given <see cref="T:System.DateTime"/> downward to the whole second.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Association.Equals(System.Object)">
- <summary>
- Tests equality of two <see cref="T:DotNetOpenId.Association"/> objects.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Association.GetHashCode">
- <summary>
- Returns the hash code.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.Handle">
- <summary>
- A unique handle by which this <see cref="T:DotNetOpenId.Association"/> may be stored or retrieved.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.Issued">
- <summary>
- Gets the time that this <see cref="T:DotNetOpenId.Association"/> was first created
- and the <see cref="P:DotNetOpenId.Association.SecretKey"/> issued.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.TotalLifeLength">
- <summary>
- The lifetime the OpenID provider permits this <see cref="T:DotNetOpenId.Association"/>.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.SecretKey">
- <summary>
- The shared secret key between the consumer and provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.Expires">
- <summary>
- Gets the time when this <see cref="T:DotNetOpenId.Association"/> will expire.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.IsExpired">
- <summary>
- Gets whether this <see cref="T:DotNetOpenId.Association"/> has already expired.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.timeTillExpiration">
- <summary>
- Gets the TimeSpan till this association expires.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Association.SecondsTillExpiration">
- <summary>
- The number of seconds until this <see cref="T:DotNetOpenId.Association"/> expires.
- Never negative (counter runs to zero).
- </summary>
- </member>
- <member name="T:DotNetOpenId.IAssociationStore`1">
- <summary>
- Stores <see cref="T:DotNetOpenId.Association"/>s for lookup by their handle, keeping
- associations separated by a given distinguishing factor (like which server the
- association is with).
- </summary>
- <typeparam name="TKey">
- <see cref="T:System.Uri"/> for consumers (to distinguish associations across servers) or
- <see cref="T:DotNetOpenId.AssociationRelyingPartyType"/> for providers (to distingish dumb and smart client associaitons).
- </typeparam>
- </member>
- <member name="M:DotNetOpenId.IAssociationStore`1.StoreAssociation(`0,DotNetOpenId.Association)">
- <summary>
- Saves an <see cref="T:DotNetOpenId.Association"/> for later recall.
- </summary>
- </member>
- <member name="M:DotNetOpenId.IAssociationStore`1.GetAssociation(`0)">
- <summary>
- Gets the best association (the one with the longest remaining life) for a given key.
- Null if no unexpired <see cref="T:DotNetOpenId.Association"/>s exist for the given key.
- </summary>
- </member>
- <member name="M:DotNetOpenId.IAssociationStore`1.GetAssociation(`0,System.String)">
- <summary>
- Gets the association for a given key and handle.
- Null if no unexpired <see cref="T:DotNetOpenId.Association"/>s exist for the given key and handle.
- </summary>
- </member>
- <member name="M:DotNetOpenId.IAssociationStore`1.RemoveAssociation(`0,System.String)">
- <summary>Removes a specified handle that may exist in the store.</summary>
- <returns>True if the association existed in this store previous to this call.</returns>
- <remarks>
- No exception should be thrown if the association does not exist in the store
- before this call.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.IAssociationStore`1.ClearExpiredAssociations">
- <summary>
- Clears all expired associations from the store.
- </summary>
- <remarks>
- If another algorithm is in place to periodically clear out expired associations,
- this method call may be ignored.
- This should be done frequently enough to avoid a memory leak, but sparingly enough
- to not be a performance drain.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.AssociationMemoryStore`1.ClearExpiredAssociations">
- <summary>
- Clears all expired associations from the store.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Associations">
- <summary>
- A dictionary of handle/Association pairs.
- </summary>
- <remarks>
- Each method is locked, even if it is only one line, so that they are thread safe
- against each other, particularly the ones that enumerate over the list, since they
- can break if the collection is changed by another thread during enumeration.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Associations.#ctor">
- <summary>
- Instantiates a mapping between association handles and <see cref="T:DotNetOpenId.Association"/> objects.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Associations.Set(DotNetOpenId.Association)">
- <summary>
- Stores an <see cref="T:DotNetOpenId.Association"/> in the collection.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Associations.Get(System.String)">
- <summary>
- Returns the <see cref="T:DotNetOpenId.Association"/> with the given handle. Null if not found.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Associations.Remove(System.String)">
- <summary>
- Removes the <see cref="T:DotNetOpenId.Association"/> with the given handle.
- </summary>
- <returns>Whether an <see cref="T:DotNetOpenId.Association"/> with the given handle was in the collection for removal.</returns>
- </member>
- <member name="M:DotNetOpenId.Associations.ClearExpired">
- <summary>
- Removes all expired associations from the collection.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Associations.Best">
- <summary>
- Gets the <see cref="T:DotNetOpenId.Association"/> issued most recently. Null if no valid associations exist.
- </summary>
- </member>
- <member name="M:DotNetOpenId.DiffieHellmanUtil.ensurePositive(System.Byte[])">
- <summary>
- Ensures that the big integer represented by a given series of bytes
- is a positive integer.
- </summary>
- <returns>A byte array (possibly new if a change was required) whose
- integer is guaranteed to be positive.</returns>
- <remarks>
- This is to be consistent with OpenID spec section 4.2.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Extensions.ExtensionManager.RequestExtensions">
- <summary>
- A list of request extensions that may be enumerated over for logging purposes.
- </summary>
- </member>
- <member name="T:DotNetOpenId.SecuritySettings">
- <summary>
- Security settings that may be applicable to both relying parties and providers.
- </summary>
- </member>
- <member name="P:DotNetOpenId.SecuritySettings.MinimumHashBitLength">
- <summary>
- Gets/sets the minimum hash length (in bits) allowed to be used in an <see cref="T:DotNetOpenId.Association"/>
- with the remote party. The default is 160.
- </summary>
- <remarks>
- SHA-1 (160 bits) has been broken. The minimum secure hash length is now 256 bits.
- The default is still a 160 bit minimum to allow interop with common remote parties,
- such as Yahoo! that only supports 160 bits.
- For sites that require high security such as to store bank account information and
- health records, 256 is the recommended value.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.SecuritySettings.MaximumHashBitLength">
- <summary>
- Gets/sets the maximum hash length (in bits) allowed to be used in an <see cref="T:DotNetOpenId.Association"/>
- with the remote party. The default is 256 for relying parties and 512 for providers.
- </summary>
- <remarks>
- The longer the bit length, the more secure the identities of your visitors are.
- Setting a value higher than 256 on a relying party site may reduce performance
- as many association requests will be denied, causing secondary requests or even
- authentication failures.
- Setting a value higher than 256 on a provider increases security where possible
- without these side-effects.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.ProviderSecuritySettings.ProtectDownlevelReplayAttacks">
- <summary>
- Gets/sets whether OpenID 1.x relying parties that may not be
- protecting their users from replay attacks are protected from
- replay attacks by this provider.
- </summary>
- <remarks>
- <para>Nonces for protection against replay attacks were not mandated
- by OpenID 1.x, which leaves users open to replay attacks.</para>
- <para>This feature works by preventing associations from being formed
- with OpenID 1.x relying parties, thereby forcing them into
- "dumb" mode and verifying every claim with this provider.
- This gives the provider an opportunity to verify its own nonce
- to protect against replay attacks.</para>
- </remarks>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings">
- <summary>
- Security settings that are applicable to relying parties.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.OnRequireSslChanged">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.RequireSslChanged"/> event.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.RequireSsl">
- <summary>
- Gets/sets whether the entire pipeline from Identifier discovery to Provider redirect
- is guaranteed to be encrypted using HTTPS for authentication to succeed.
- </summary>
- <remarks>
- <para>Setting this property to true is appropriate for RPs with highly sensitive
- personal information behind the authentication (money management, health records, etc.)</para>
- <para>When set to true, some behavioral changes and additional restrictions are placed:</para>
- <list>
- <item>User-supplied identifiers lacking a scheme are prepended with
- HTTPS:// rather than the standard HTTP:// automatically.</item>
- <item>User-supplied identifiers are not allowed to use HTTP for the scheme.</item>
- <item>All redirects during discovery on the user-supplied identifier must be HTTPS.</item>
- <item>Any XRDS file found by discovery on the User-supplied identifier must be protected using HTTPS.</item>
- <item>Only Provider endpoints found at HTTPS URLs will be considered.</item>
- <item>If the discovered identifier is an OP Identifier (directed identity), the
- Claimed Identifier eventually asserted by the Provider must be an HTTPS identifier.</item>
- <item>In the case of an unsolicited assertion, the asserted Identifier, discovery on it and
- the asserting provider endpoint must all be secured by HTTPS.</item>
- </list>
- <para>Although the first redirect from this relying party to the Provider is required
- to use HTTPS, any additional redirects within the Provider cannot be protected and MAY
- revert the user's connection to HTTP, based on individual Provider implementation.
- There is nothing that the RP can do to detect or prevent this.</para>
- <para>
- An <see cref="T:DotNetOpenId.OpenIdException"/> is thrown when a secure pipeline cannot be established.
- </para>
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.MinimumRequiredOpenIdVersion">
- <summary>
- Gets/sets the oldest version of OpenID the remote party is allowed to implement.
- </summary>
- <value>Defaults to <see cref="F:DotNetOpenId.ProtocolVersion.V10"/></value>
- </member>
- <member name="T:DotNetOpenId.NoDiscoveryIdentifier">
- <summary>
- Wraps an existing Identifier and prevents it from performing discovery.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Identifier">
- <summary>
- An Identifier is either a "http" or "https" URI, or an XRI.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.#ctor(System.Boolean)">
- <summary>
- Constructs an <see cref="T:DotNetOpenId.Identifier"/>.
- </summary>
- <param name="isDiscoverySecureEndToEnd">
- Whether the derived class is prepared to guarantee end-to-end discovery
- and initial redirect for authentication is performed using SSL.
- </param>
- </member>
- <member name="M:DotNetOpenId.Identifier.op_Implicit(System.String)~DotNetOpenId.Identifier">
- <summary>
- Converts the string representation of an Identifier to its strong type.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.op_Implicit(System.Uri)~DotNetOpenId.Identifier">
- <summary>
- Returns a strongly-typed Identifier for a given Uri.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.op_Implicit(DotNetOpenId.Identifier)~System.String">
- <summary>
- Converts an Identifier to its string representation.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.Parse(System.String)">
- <summary>
- Parses an identifier string and automatically determines
- whether it is an XRI or URI.
- </summary>
- <param name="identifier">Either a URI or XRI identifier.</param>
- </member>
- <member name="M:DotNetOpenId.Identifier.TryParse(System.String,DotNetOpenId.Identifier@)">
- <summary>
- Attempts to parse a string for an OpenId Identifier.
- </summary>
- <param name="value">The string to be parsed.</param>
- <param name="result">The parsed Identifier form.</param>
- <returns>
- True if the operation was successful. False if the string was not a valid OpenId Identifier.
- </returns>
- </member>
- <member name="M:DotNetOpenId.Identifier.IsValid(System.String)">
- <summary>
- Gets whether a given string represents a valid Identifier format.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.Discover">
- <summary>
- Performs discovery on the Identifier.
- </summary>
- <returns>
- An initialized structure containing the discovered provider endpoint information.
- </returns>
- </member>
- <member name="M:DotNetOpenId.Identifier.op_Equality(DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
- <summary>
- Tests equality between two <see cref="T:DotNetOpenId.Identifier"/>s.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.op_Inequality(DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
- <summary>
- Tests inequality between two <see cref="T:DotNetOpenId.Identifier"/>s.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.Equals(System.Object)">
- <summary>
- Tests equality between two <see cref="T:DotNetOpenId.Identifier"/>s.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.GetHashCode">
- <summary>
- Gets the hash code for an <see cref="T:DotNetOpenId.Identifier"/> for storage in a hashtable.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.TrimFragment">
- <summary>
- Returns an <see cref="T:DotNetOpenId.Identifier"/> that has no URI fragment.
- Quietly returns the original <see cref="T:DotNetOpenId.Identifier"/> if it is not
- a <see cref="T:DotNetOpenId.UriIdentifier"/> or no fragment exists.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Identifier.TryRequireSsl(DotNetOpenId.Identifier@)">
- <summary>
- Converts a given identifier to its secure equivalent.
- UriIdentifiers originally created with an implied HTTP scheme change to HTTPS.
- Discovery is made to require SSL for the entire resolution process.
- </summary>
- <param name="secureIdentifier">
- The newly created secure identifier.
- If the conversion fails, <paramref name="secureIdentifier"/> retains
- <i>this</i> identifiers identity, but will never discover any endpoints.
- </param>
- <returns>
- True if the secure conversion was successful.
- False if the Identifier was originally created with an explicit HTTP scheme.
- </returns>
- </member>
- <member name="P:DotNetOpenId.Identifier.IsDiscoverySecureEndToEnd">
- <summary>
- Whether this Identifier will ensure SSL is used throughout the discovery phase
- and initial redirect of authentication.
- </summary>
- <remarks>
- If this is False, a value of True may be obtained by calling <see cref="M:DotNetOpenId.Identifier.TryRequireSsl(DotNetOpenId.Identifier@)"/>.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Provider.SigningMessageEncoder">
- <summary>
- Encodes responses in to <see cref="T:DotNetOpenId.Response"/>, signing them when required.
- </summary>
- </member>
- <member name="T:DotNetOpenId.MessageEncoder">
- <summary>
- Encodes <see cref="T:DotNetOpenId.IEncodable"/> messages into <see cref="T:DotNetOpenId.Response"/> instances
- that can be interpreted by the host web site.
- </summary>
- </member>
- <member name="F:DotNetOpenId.MessageEncoder.KeyValueFormContentType">
- <summary>
- The HTTP Content-Type to use in Key-Value Form responses.
- </summary>
- </member>
- <member name="F:DotNetOpenId.MessageEncoder.GetToPostThreshold">
- <summary>
- The maximum allowable size for a 301 Redirect response before we send
- a 200 OK response with a scripted form POST with the parameters instead
- in order to ensure successfully sending a large payload to another server
- that might have a maximum allowable size restriction on its GET request.
- </summary>
- </member>
- <member name="M:DotNetOpenId.MessageEncoder.Encode(DotNetOpenId.IEncodable)">
- <summary>
- Encodes messages into <see cref="T:DotNetOpenId.Response"/> instances.
- </summary>
- </member>
- <member name="T:DotNetOpenId.IEncodable">
- <remarks>
- Classes that implement IEncodable should be either [Serializable] or
- derive from <see cref="T:System.MarshalByRefObject"/> so that testing can
- remote across app-domain boundaries to sniff/tamper with messages.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.IEncodable.RedirectUrl">
- <summary>
- The URL that the user agent should be redirected to
- in the case of <see cref="F:DotNetOpenId.EncodingType.IndirectMessage"/>.
- Does not apply to <see cref="F:DotNetOpenId.EncodingType.DirectResponse"/>.
- </summary>
- </member>
- <member name="M:DotNetOpenId.IIncomingExtensions.GetExtensionArguments(System.String)">
- <summary>
- Gets the key/value pairs of a provider's response for a given OpenID extension.
- </summary>
- <param name="extensionTypeUri">
- The Type URI of the OpenID extension whose arguments are being sought.
- </param>
- <returns>
- Returns key/value pairs for this extension.
- </returns>
- </member>
- <member name="M:DotNetOpenId.IIncomingExtensions.ContainsExtension(System.String)">
- <summary>
- Gets whether any arguments for a given extension are present.
- </summary>
- </member>
- <member name="M:DotNetOpenId.IOutgoingExtensions.AddExtensionArguments(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Adds query parameters for OpenID extensions to the request directed
- at the OpenID provider.
- </summary>
- </member>
- <member name="F:DotNetOpenId.ExtensionArgumentsManager.isReadMode">
- <summary>
- Whether extensions are being read or written.
- </summary>
- </member>
- <member name="F:DotNetOpenId.ExtensionArgumentsManager.extensions">
- <summary>
- A complex dictionary where the key is the Type URI of the extension,
- and the value is another dictionary of the name/value args of the extension.
- </summary>
- </member>
- <member name="F:DotNetOpenId.ExtensionArgumentsManager.typeUriToAliasAffinity">
- <summary>
- This contains a set of aliases that we must be willing to implicitly
- match to namespaces for backward compatibility with other OpenID libraries.
- </summary>
- </member>
- <member name="M:DotNetOpenId.ExtensionArgumentsManager.GetArgumentsToSend(System.Boolean)">
- <summary>
- Gets the actual arguments to add to a querystring or other response,
- where type URI, alias, and actual key/values are all defined.
- </summary>
- </member>
- <member name="M:DotNetOpenId.ExtensionArgumentsManager.GetExtensionArguments(System.String)">
- <summary>
- Gets the fields carried by a given OpenId extension.
- </summary>
- <returns>The fields included in the given extension, or null if the extension is not present.</returns>
- </member>
- <member name="F:DotNetOpenId.Extensions.AliasManager.typeUriToAliasMap">
- <summary>
- Tracks extension Type URIs and aliases assigned to them.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AliasManager.aliasToTypeUriMap">
- <summary>
- Tracks extension aliases and Type URIs assigned to them.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AliasManager.GetAlias(System.String)">
- <summary>
- Gets an alias assigned for a given Type URI. A new alias is assigned if necessary.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AliasManager.SetAlias(System.String,System.String)">
- <summary>
- Sets an alias and the value that will be returned by <see cref="M:DotNetOpenId.Extensions.AliasManager.ResolveAlias(System.String)"/>.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AliasManager.ResolveAlias(System.String)">
- <summary>
- Gets the Type Uri encoded by a given alias.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.Constants">
- <summary>
- Attribute Exchange constants
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.FetchResponse">
- <summary>
- The Attribute Exchange Fetch message, response leg.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.IExtensionResponse">
- <summary>
- The contract an OpenID extension can implement for messages from provider to relying party
- to make handling extensions generally easier.
- Extensions are not required to implement this interface, however.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.IExtension">
- <summary>
- The contract any OpenID extension for DotNetOpenId must implement.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.IExtension.TypeUri">
- <summary>
- Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.IExtension.AdditionalSupportedTypeUris">
- <summary>
- Additional TypeURIs that are supported by this extension, in preferred order.
- May be empty if none other than <see cref="P:DotNetOpenId.Extensions.IExtension.TypeUri"/> is supported, but
- should not be null.
- </summary>
- <remarks>
- Useful for reading in messages with an older version of an extension.
- The value in the <see cref="P:DotNetOpenId.Extensions.IExtension.TypeUri"/> property is always checked before
- trying this list.
- If you do support multiple versions of an extension using this method,
- consider adding a CreateResponse method to your request extension class
- so that the response can have the context it needs to remain compatible
- given the version of the extension in the request message.
- The <see cref="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.CreateResponse"/> for an example.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Extensions.IExtensionResponse.Serialize(DotNetOpenId.Provider.IRequest)">
- <summary>
- Returns the fields this extension should add to an authentication response.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.IExtensionResponse.Deserialize(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.IAuthenticationResponse,System.String)">
- <summary>
- Reads a Provider's response for extension values.
- </summary>
- <param name="fields">The fields belonging to the extension.</param>
- <param name="response">The incoming OpenID response carrying the extension.</param>
- <param name="typeUri">The actual extension TypeUri that was recognized in the message.</param>
- <returns>
- True if the extension found a valid set of recognized parameters in the response,
- false otherwise.
- </returns>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.AddAttribute(DotNetOpenId.Extensions.AttributeExchange.AttributeValues)">
- <summary>
- Used by the Provider to add attributes to the response for the relying party.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.GetAttribute(System.String)">
- <summary>
- Used by the Relying Party to get the value(s) returned by the OpenID Provider
- for a given attribute, or null if that attribute was not provided.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.Attributes">
- <summary>
- Enumerates over all the attributes included by the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.UpdateUrlSupported">
- <summary>
- Whether the OpenID Provider intends to honor the request for updates.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.UpdateUrl">
- <summary>
- The URL the OpenID Provider will post updates to. Must be set if the Provider
- supports and will use this feature.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest">
- <summary>
- An individual attribute to be requested of the OpenID Provider using
- the Attribute Exchange extension.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor">
- <summary>
- Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/> with IsRequired = false, Count = 1.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor(System.String)">
- <summary>
- Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/> with IsRequired = false, Count = 1.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor(System.String,System.Boolean)">
- <summary>
- Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/> with Count = 1.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor(System.String,System.Boolean,System.Int32)">
- <summary>
- Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/>.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.Respond(System.String[])">
- <summary>
- Used by a Provider to create a response to a request for an attribute's value(s)
- using a given array of strings.
- </summary>
- <returns>
- The newly created <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeValues"/> object that should be added to
- the <see cref="T:DotNetOpenId.Extensions.AttributeExchange.FetchResponse"/> object.
- </returns>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.TypeUri">
- <summary>
- The URI uniquely identifying the attribute being requested.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.IsRequired">
- <summary>
- Whether the relying party considers this a required field.
- Note that even if set to true, the Provider may not provide the value.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.Count">
- <summary>
- The maximum number of values for this attribute the
- Relying Party wishes to receive from the OpenID Provider.
- A value of int.MaxValue is considered infinity.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.AttributeValues">
- <summary>
- An individual attribute's value(s) as supplied by an OpenID Provider
- in response to a prior request by an OpenID Relying Party as part of
- a fetch request, or by a relying party as part of a store request.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.#ctor">
- <remarks>
- This is internal because web sites should be using the
- <see cref="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.Respond(System.String[])"/> method to instantiate.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.#ctor(System.String,System.String[])">
- <summary>
- Instantiates an <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeValues"/> object.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.TypeUri">
- <summary>
- The URI uniquely identifying the attribute whose value is being supplied.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.Values">
- <summary>
- Gets the values supplied by the Provider.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes">
- <summary>
- Attribute types defined at http://www.axschema.org/types/.
- </summary>
- <remarks>
- If you don't see what you need here, check that URL to see if any have been added.
- You can use new ones directly without adding them to this class, and can even make
- up your own if you expect the other end to understand what you make up.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Person">
- <summary>
- Inherent attributes about a personality such as gender and bio.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Person.Gender">
- <summary>Gender, either "M" or "F"</summary>
- <example>"M", "F"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Person.Biography">
- <summary>Biography (text)</summary>
- <example>"I am the very model of a modern Major General."</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Preferences">
- <summary>
- Preferences such as language and timezone.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Preferences.Language">
- <summary>Preferred language, as per RFC4646</summary>
- <example>"en-US"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Preferences.TimeZone">
- <summary>Home time zone information (as specified in <a href="http://en.wikipedia.org/wiki/List_of_tz_zones_by_name">zoneinfo</a>)</summary>
- <example>"America/Pacific"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name">
- <summary>
- The names a person goes by.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Alias">
- <summary>Subject's alias or "screen" name</summary>
- <example>"Johnny5"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.FullName">
- <summary>Full name of subject</summary>
- <example>"John Doe"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Prefix">
- <summary>Honorific prefix for the subject's name</summary>
- <example>"Mr.", "Mrs.", "Dr."</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.First">
- <summary>First or given name of subject</summary>
- <example>"John"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Last">
- <summary>Last name or surname of subject</summary>
- <example>"Smith"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Middle">
- <summary>Middle name(s) of subject</summary>
- <example>"Robert"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Suffix">
- <summary>Suffix of subject's name</summary>
- <example>"III", "Jr."</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Company">
- <summary>
- Business affiliation.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Company.CompanyName">
- <summary>Company name (employer)</summary>
- <example>"Springfield Power"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Company.JobTitle">
- <summary>Employee title</summary>
- <example>"Engineer"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate">
- <summary>
- Information about a person's birthdate.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.WholeBirthDate">
- <summary>Date of birth.</summary>
- <example>"1979-01-01"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.Year">
- <summary>Year of birth (four digits)</summary>
- <example>"1979"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.Month">
- <summary>Month of birth (1-12)</summary>
- <example>"05"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.DayOfMonth">
- <summary>Day of birth</summary>
- <example>"31"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact">
- <summary>
- Various ways to contact a person.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Email">
- <summary>Internet SMTP email address as per RFC2822</summary>
- <example>"jsmith@isp.example.com"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone">
- <summary>
- Various types of phone numbers.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Preferred">
- <summary>Main phone number (preferred)</summary>
- <example>+1-800-555-1234</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Home">
- <summary>Home phone number</summary>
- <example>+1-800-555-1234</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Work">
- <summary>Business phone number</summary>
- <example>+1-800-555-1234</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Mobile">
- <summary>Cellular (or mobile) phone number</summary>
- <example>+1-800-555-1234</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Fax">
- <summary>Fax number</summary>
- <example>+1-800-555-1234</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress">
- <summary>
- The many fields that make up an address.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.StreetAddressLine1">
- <summary>Home postal address: street number, name and apartment number</summary>
- <example>"#42 135 East 1st Street"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.StreetAddressLine2">
- <summary>"#42 135 East 1st Street"</summary>
- <example>"Box 67"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.City">
- <summary>Home city name</summary>
- <example>"Vancouver"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.State">
- <summary>Home state or province name</summary>
- <example>"BC"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.Country">
- <summary>Home country code in ISO.3166.1988 (alpha 2) format</summary>
- <example>"CA"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.PostalCode">
- <summary>Home postal code; region specific format</summary>
- <example>"V5A 4B2"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress">
- <summary>
- The many fields that make up an address.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.StreetAddressLine1">
- <summary>Business postal address: street number, name and apartment number</summary>
- <example>"#42 135 East 1st Street"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.StreetAddressLine2">
- <summary>"#42 135 East 1st Street"</summary>
- <example>"Box 67"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.City">
- <summary>Business city name</summary>
- <example>"Vancouver"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.State">
- <summary>Business state or province name</summary>
- <example>"BC"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.Country">
- <summary>Business country code in ISO.3166.1988 (alpha 2) format</summary>
- <example>"CA"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.PostalCode">
- <summary>Business postal code; region specific format</summary>
- <example>"V5A 4B2"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM">
- <summary>
- Various handles for instant message clients.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.AOL">
- <summary>AOL instant messaging service handle</summary>
- <example>"jsmith421234"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.ICQ">
- <summary>ICQ instant messaging service handle</summary>
- <example>"1234567"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.MSN">
- <summary>MSN instant messaging service handle</summary>
- <example>"jsmith42@hotmail.com"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.Yahoo">
- <summary>Yahoo! instant messaging service handle</summary>
- <example>"jsmith421234"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.Jabber">
- <summary>Jabber instant messaging service handle</summary>
- <example>"jsmith@jabber.example.com"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.Skype">
- <summary>Skype instant messaging service handle</summary>
- <example>"jsmith42"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web">
- <summary>
- Various web addresses connected with this personality.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Homepage">
- <summary>Web site URL</summary>
- <example>"http://example.com/~jsmith/"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Blog">
- <summary>Blog URL</summary>
- <example>"http://example.com/jsmith_blog/"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.LinkedIn">
- <summary>LinkedIn URL</summary>
- <example>"http://www.linkedin.com/pub/1/234/56"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Amazon">
- <summary>Amazon URL</summary>
- <example>"http://www.amazon.com/gp/pdp/profile/A24DLKJ825"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Flickr">
- <summary>Flickr URL</summary>
- <example>"http://flickr.com/photos/jsmith42/"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Delicious">
- <summary>del.icio.us URL</summary>
- <example>"http://del.icio.us/jsmith42"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media">
- <summary>
- Audio and images of this personality.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.SpokenName">
- <summary>Spoken name (web URL)</summary>
- <example>"http://example.com/~jsmith/john_smith.wav"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.AudioGreeting">
- <summary>Audio greeting (web URL)</summary>
- <example>"http://example.com/~jsmith/i_greet_you.wav"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.VideoGreeting">
- <summary>Video greeting (web URL)</summary>
- <example>"http://example.com/~jsmith/i_greet_you.mov"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images">
- <summary>
- Images of this personality.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Default">
- <summary>Image (web URL); unspecified dimension</summary>
- <example>"http://example.com/~jsmith/image.jpg"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Aspect11">
- <summary>Image (web URL) with equal width and height</summary>
- <example>"http://example.com/~jsmith/image.jpg"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Aspect43">
- <summary>Image (web URL) 4:3 aspect ratio - landscape</summary>
- <example>"http://example.com/~jsmith/image.jpg"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Aspect34">
- <summary>Image (web URL) 4:3 aspect ratio - landscape</summary>
- <example>"http://example.com/~jsmith/image.jpg"</example>
- </member>
- <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.FavIcon">
- <summary>Image (web URL); favicon format as per FAVICON-W3C. The format for the image must be 16x16 pixels or 32x32 pixels, using either 8-bit or 24-bit colors. The format of the image must be one of PNG (a W3C standard), GIF, or ICO.</summary>
- <example>"http://example.com/~jsmith/image.jpg"</example>
- </member>
- <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies">
- <summary>
- Well-known authentication policies defined in the PAPE extension spec or by a recognized
- standards body.
- </summary>
- <remarks>
- This is a class of constants rather than a flags enum because policies may be
- freely defined and used by anyone, just by using a new Uri.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies.PhishingResistant">
- <summary>
- An authentication mechanism where the End User does not provide a shared secret to a party potentially under the control of the Relying Party. (Note that the potentially malicious Relying Party controls where the User-Agent is redirected to and thus may not send it to the End User's actual OpenID Provider).
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies.MultiFactor">
- <summary>
- An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor. Common authentication factors are something you know, something you have, and something you are. An example would be authentication using a password and a software token or digital certificate.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies.PhysicalMultiFactor">
- <summary>
- An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor where at least one of the factors is a physical factor such as a hardware device or biometric. Common authentication factors are something you know, something you have, and something you are. This policy also implies the Multi-Factor Authentication policy (http://schemas.openid.net/pape/policies/2007/06/multi-factor) and both policies MAY BE specified in conjunction without conflict. An example would be authentication using a password and a hardware token.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants">
- <summary>
- OpenID Provider Authentication Policy extension constants.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.TypeUri">
- <summary>
- The namespace used by this extension in messages.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.RequestParameters">
- <summary>
- Parameters to be included with PAPE requests.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.RequestParameters.MaxAuthAge">
- <summary>
- Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request.
- </summary>
- <value>Integer value greater than or equal to zero in seconds.</value>
- <remarks>
- The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.RequestParameters.PreferredAuthPolicies">
- <summary>
- Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can.
- </summary>
- <value>Space separated list of authentication policy URIs.</value>
- <remarks>
- If no policies are requested, the RP may be interested in other information such as the authentication age.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters">
- <summary>
- Parameters to be included with PAPE responses.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters.AuthPolicies">
- <summary>
- One or more authentication policy URIs that the OP conformed to when authenticating the End User.
- </summary>
- <value>Space separated list of authentication policy URIs.</value>
- <remarks>
- If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none".
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters.AuthTime">
- <summary>
- Optional. The most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies.
- </summary>
- <value>
- The timestamp MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions:
- * All times must be in the UTC timezone, indicated with a "Z".
- * No fractional seconds are allowed
- For example: 2005-05-15T17:11:51Z
- </value>
- <remarks>
- If the RP's request included the "openid.max_auth_age" parameter then the OP MUST include "openid.auth_time" in its response. If "openid.max_auth_age" was not requested, the OP MAY choose to include "openid.auth_time" in its response.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters.NistAuthLevel">
- <summary>
- Optional. The Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User.
- </summary>
- <value>Integer value between 0 and 4 inclusive.</value>
- <remarks>
- Level 0 is not an assurance level defined by NIST, but rather SHOULD be used to signify that the OP recognizes the parameter and the End User authentication did not meet the requirements of Level 1. See Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel">
- <summary>
- Descriptions for NIST-defined levels of assurance that a credential
- has not been compromised and therefore the extent to which an
- authentication assertion can be trusted.
- </summary>
- <remarks>
- One using this enum should review the following publication for details
- before asserting or interpreting what these levels signify, notwithstanding
- the brief summaries attached to each level in DotNetOpenId documentation.
- http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.InsufficientForLevel1">
- <summary>
- Not an assurance level defined by NIST, but rather SHOULD be used to
- signify that the OP recognizes the parameter and the End User
- authentication did not meet the requirements of Level 1.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level1">
- <summary>
- See this document for a thorough description:
- http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level2">
- <summary>
- See this document for a thorough description:
- http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level3">
- <summary>
- See this document for a thorough description:
- http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level4">
- <summary>
- See this document for a thorough description:
- http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest">
- <summary>
- The PAPE request part of an OpenID Authentication request message.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.IExtensionRequest">
- <summary>
- The contract an OpenID extension can implement for messages from relying party to provider
- to make handling extensions generally easier.
- Extensions are not required to implement this interface, however.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.IExtensionRequest.Serialize(DotNetOpenId.RelyingParty.IAuthenticationRequest)">
- <summary>
- Returns the fields this extension should add to an authentication request.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.IExtensionRequest.Deserialize(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.Provider.IRequest,System.String)">
- <summary>
- Reads the extension information on an authentication request to the provider.
- </summary>
- <param name="fields">The fields belonging to the extension.</param>
- <param name="request">The incoming OpenID request carrying the extension.</param>
- <param name="typeUri">The actual extension TypeUri that was recognized in the message.</param>
- <returns>
- True if the extension found a valid set of recognized parameters in the request,
- false otherwise.
- </returns>
- </member>
- <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.#ctor">
- <summary>
- Instantiates a new <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest"/>.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.Equals(System.Object)">
- <summary>
- Tests equality between two <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest"/> instances.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.GetHashCode">
- <summary>
- Gets a hash code for this object.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.MaximumAuthenticationAge">
- <summary>
- Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request.
- </summary>
- <remarks>
- The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.PreferredPolicies">
- <summary>
- Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can.
- </summary>
- <value>List of authentication policy URIs obtainable from the <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies"/> class or from a custom list.</value>
- <remarks>
- If no policies are requested, the RP may be interested in other information such as the authentication age.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse">
- <summary>
- The PAPE response part of an OpenID Authentication response message.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.#ctor">
- <summary>
- Instantiates a <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse"/>.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.Equals(System.Object)">
- <summary>
- Tests equality between two <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse"/> instances.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.GetHashCode">
- <summary>
- Gets a hash code for this object.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.ActualPolicies">
- <summary>
- One or more authentication policy URIs that the OP conformed to when authenticating the End User.
- </summary>
- <remarks>
- If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none".
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.AuthenticationTimeUtc">
- <summary>
- Optional. The most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies.
- </summary>
- <remarks>
- If the RP's request included the "openid.max_auth_age" parameter then the OP MUST include "openid.auth_time" in its response. If "openid.max_auth_age" was not requested, the OP MAY choose to include "openid.auth_time" in its response.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.NistAssuranceLevel">
- <summary>
- Optional. The Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User.
- </summary>
- <remarks>
- See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Extensions.SimpleRegistration.Constants">
- <summary>
- Simple Registration constants
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.FetchRequest">
- <summary>
- The Attribute Exchange Fetch message, request leg.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.AddAttribute(DotNetOpenId.Extensions.AttributeExchange.AttributeRequest)">
- <summary>
- Used by the Relying Party to add a request for the values of a given attribute.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.GetAttribute(System.String)">
- <summary>
- Used by the Provider to find out whether the value(s) of a given attribute is requested.
- </summary>
- <returns>Null if the Relying Party did not ask for the values of the given attribute.</returns>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.Attributes">
- <summary>
- Enumerates the attributes whose values are requested by the Relying Party.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.UpdateUrl">
- <summary>
- If set, the OpenID Provider may re-post the fetch response message to the
- specified URL at some time after the initial response has been sent, using an
- OpenID Authentication Positive Assertion to inform the relying party of updates
- to the requested fields.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.StoreRequest">
- <summary>
- The Attribute Exchange Store message, request leg.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.AddAttribute(DotNetOpenId.Extensions.AttributeExchange.AttributeValues)">
- <summary>
- Used by the Relying Party to add a given attribute with one or more values
- to the request for storage.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.AddAttribute(System.String,System.String[])">
- <summary>
- Used by the Relying Party to add a given attribute with one or more values
- to the request for storage.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.GetAttribute(System.String)">
- <summary>
- Used by the Provider to gets the value(s) associated with a given attribute
- that should be stored.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.Attributes">
- <summary>
- Lists all the attributes that are included in the store request.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.AttributeExchange.StoreResponse">
- <summary>
- The Attribute Exchange Store message, response leg.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.StoreResponse.Succeeded">
- <summary>
- Whether the storage request succeeded.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.AttributeExchange.StoreResponse.FailureReason">
- <summary>
- The reason for the failure.
- </summary>
- </member>
- <member name="T:DotNetOpenId.IResponse">
- <summary>
- Represents an indirect message passed between Relying Party and Provider.
- </summary>
- </member>
- <member name="M:DotNetOpenId.IResponse.Send">
- <summary>
- Sends the response to the browser.
- </summary>
- <remarks>
- This requires an ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.IResponse.Code">
- <summary>
- The HTTP status code that should accompany the response.
- </summary>
- </member>
- <member name="P:DotNetOpenId.IResponse.Headers">
- <summary>
- The HTTP headers that should be added to the response.
- </summary>
- </member>
- <member name="P:DotNetOpenId.IResponse.Body">
- <summary>
- The body that should be sent as the response content.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Loggers.ILog">
- <summary>
- The ILog interface is use by application to log messages into
- the log4net framework.
- </summary>
- <remarks>
- <para>
- Use the <see cref="T:log4net.LogManager"/> to obtain logger instances
- that implement this interface. The <see cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
- static method is used to get logger instances.
- </para>
- <para>
- This class contains methods for logging at different levels and also
- has properties for determining if those logging levels are
- enabled in the current configuration.
- </para>
- <para>
- This interface can be implemented in different ways. This documentation
- specifies reasonable behavior that a caller can expect from the actual
- implementation, however different implementations reserve the right to
- do things differently.
- </para>
- </remarks>
- <example>Simple example of logging messages
- <code lang="C#">
- ILog log = LogManager.GetLogger("application-log");
-
- log.Info("Application Start");
- log.Debug("This is a debug message");
-
- if (log.IsDebugEnabled)
- {
- log.Debug("This is another debug message");
- }
- </code>
- </example>
- <seealso cref="T:log4net.LogManager"/>
- <seealso cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
- <author>Nicko Cadell</author>
- <author>Gert Driesen</author>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)">
- <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
- <summary>
- Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.
- </summary>
- <param name="message">The message object to log.</param>
- <remarks>
- <para>
- This method first checks if this logger is <c>DEBUG</c>
- enabled by comparing the level of this logger with the
- <see cref="F:log4net.Core.Level.Debug"/> level. If this logger is
- <c>DEBUG</c> enabled, then it converts the message object
- (passed as parameter) to a string by invoking the appropriate
- <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
- proceeds to call all the registered appenders in this logger
- and also higher in the hierarchy depending on the value of
- the additivity flag.
- </para>
- <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
- to this method will print the name of the <see cref="T:System.Exception"/>
- but no stack trace. To print a stack trace use the
- <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/> form instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)">
- <summary>
- Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level including
- the stack trace of the <see cref="T:System.Exception"/> passed
- as a parameter.
- </summary>
- <param name="message">The message object to log.</param>
- <param name="exception">The exception to log, including its stack trace.</param>
- <remarks>
- <para>
- See the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/> form for more detailed information.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object[])">
- <overloads>Log a formatted string with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <param name="arg2">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
- </summary>
- <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Info(System.Object)">
- <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
- <summary>
- Logs a message object with the <see cref="F:log4net.Core.Level.Info"/> level.
- </summary>
- <remarks>
- <para>
- This method first checks if this logger is <c>INFO</c>
- enabled by comparing the level of this logger with the
- <see cref="F:log4net.Core.Level.Info"/> level. If this logger is
- <c>INFO</c> enabled, then it converts the message object
- (passed as parameter) to a string by invoking the appropriate
- <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
- proceeds to call all the registered appenders in this logger
- and also higher in the hierarchy depending on the value of the
- additivity flag.
- </para>
- <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
- to this method will print the name of the <see cref="T:System.Exception"/>
- but no stack trace. To print a stack trace use the
- <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/> form instead.
- </para>
- </remarks>
- <param name="message">The message object to log.</param>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)">
- <summary>
- Logs a message object with the <c>INFO</c> level including
- the stack trace of the <see cref="T:System.Exception"/> passed
- as a parameter.
- </summary>
- <param name="message">The message object to log.</param>
- <param name="exception">The exception to log, including its stack trace.</param>
- <remarks>
- <para>
- See the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/> form for more detailed information.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object[])">
- <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <param name="arg2">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
- </summary>
- <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)">
- <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
- <summary>
- Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.
- </summary>
- <remarks>
- <para>
- This method first checks if this logger is <c>WARN</c>
- enabled by comparing the level of this logger with the
- <see cref="F:log4net.Core.Level.Warn"/> level. If this logger is
- <c>WARN</c> enabled, then it converts the message object
- (passed as parameter) to a string by invoking the appropriate
- <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
- proceeds to call all the registered appenders in this logger
- and also higher in the hierarchy depending on the value of the
- additivity flag.
- </para>
- <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
- to this method will print the name of the <see cref="T:System.Exception"/>
- but no stack trace. To print a stack trace use the
- <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/> form instead.
- </para>
- </remarks>
- <param name="message">The message object to log.</param>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)">
- <summary>
- Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level including
- the stack trace of the <see cref="T:System.Exception"/> passed
- as a parameter.
- </summary>
- <param name="message">The message object to log.</param>
- <param name="exception">The exception to log, including its stack trace.</param>
- <remarks>
- <para>
- See the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/> form for more detailed information.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object[])">
- <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <param name="arg2">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
- </summary>
- <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Error(System.Object)">
- <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
- <summary>
- Logs a message object with the <see cref="F:log4net.Core.Level.Error"/> level.
- </summary>
- <param name="message">The message object to log.</param>
- <remarks>
- <para>
- This method first checks if this logger is <c>ERROR</c>
- enabled by comparing the level of this logger with the
- <see cref="F:log4net.Core.Level.Error"/> level. If this logger is
- <c>ERROR</c> enabled, then it converts the message object
- (passed as parameter) to a string by invoking the appropriate
- <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
- proceeds to call all the registered appenders in this logger
- and also higher in the hierarchy depending on the value of the
- additivity flag.
- </para>
- <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
- to this method will print the name of the <see cref="T:System.Exception"/>
- but no stack trace. To print a stack trace use the
- <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/> form instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)">
- <summary>
- Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level including
- the stack trace of the <see cref="T:System.Exception"/> passed
- as a parameter.
- </summary>
- <param name="message">The message object to log.</param>
- <param name="exception">The exception to log, including its stack trace.</param>
- <remarks>
- <para>
- See the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/> form for more detailed information.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object[])">
- <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <param name="arg2">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
- </summary>
- <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)">
- <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
- <summary>
- Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.
- </summary>
- <remarks>
- <para>
- This method first checks if this logger is <c>FATAL</c>
- enabled by comparing the level of this logger with the
- <see cref="F:log4net.Core.Level.Fatal"/> level. If this logger is
- <c>FATAL</c> enabled, then it converts the message object
- (passed as parameter) to a string by invoking the appropriate
- <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
- proceeds to call all the registered appenders in this logger
- and also higher in the hierarchy depending on the value of the
- additivity flag.
- </para>
- <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
- to this method will print the name of the <see cref="T:System.Exception"/>
- but no stack trace. To print a stack trace use the
- <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/> form instead.
- </para>
- </remarks>
- <param name="message">The message object to log.</param>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)">
- <summary>
- Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level including
- the stack trace of the <see cref="T:System.Exception"/> passed
- as a parameter.
- </summary>
- <param name="message">The message object to log.</param>
- <param name="exception">The exception to log, including its stack trace.</param>
- <remarks>
- <para>
- See the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/> form for more detailed information.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object[])">
- <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object,System.Object,System.Object)">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
- </summary>
- <param name="format">A String containing zero or more format items</param>
- <param name="arg0">An Object to format</param>
- <param name="arg1">An Object to format</param>
- <param name="arg2">An Object to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
- <summary>
- Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
- </summary>
- <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
- <param name="format">A String containing zero or more format items</param>
- <param name="args">An Object array containing zero or more objects to format</param>
- <remarks>
- <para>
- The message is formatted using the <c>String.Format</c> method. See
- <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
- of the formatting.
- </para>
- <para>
- This method does not take an <see cref="T:System.Exception"/> object to include in the
- log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
- methods instead.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
- </member>
- <member name="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled">
- <summary>
- Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Debug"/> level.
- </summary>
- <value>
- <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Debug"/> events, <c>false</c> otherwise.
- </value>
- <remarks>
- <para>
- This function is intended to lessen the computational cost of
- disabled log debug statements.
- </para>
- <para> For some ILog interface <c>log</c>, when you write:</para>
- <code lang="C#">
- log.Debug("This is entry number: " + i );
- </code>
- <para>
- You incur the cost constructing the message, string construction and concatenation in
- this case, regardless of whether the message is logged or not.
- </para>
- <para>
- If you are worried about speed (who isn't), then you should write:
- </para>
- <code lang="C#">
- if (log.IsDebugEnabled)
- {
- log.Debug("This is entry number: " + i );
- }
- </code>
- <para>
- This way you will not incur the cost of parameter
- construction if debugging is disabled for <c>log</c>. On
- the other hand, if the <c>log</c> is debug enabled, you
- will incur the cost of evaluating whether the logger is debug
- enabled twice. Once in <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/> and once in
- the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>. This is an insignificant overhead
- since evaluating a logger takes about 1% of the time it
- takes to actually log. This is the preferred style of logging.
- </para>
- <para>Alternatively if your logger is available statically then the is debug
- enabled state can be stored in a static variable like this:
- </para>
- <code lang="C#">
- private static readonly bool isDebugEnabled = log.IsDebugEnabled;
- </code>
- <para>
- Then when you come to log you can write:
- </para>
- <code lang="C#">
- if (isDebugEnabled)
- {
- log.Debug("This is entry number: " + i );
- }
- </code>
- <para>
- This way the debug enabled state is only queried once
- when the class is loaded. Using a <c>private static readonly</c>
- variable is the most efficient because it is a run time constant
- and can be heavily optimized by the JIT compiler.
- </para>
- <para>
- Of course if you use a static readonly variable to
- hold the enabled state of the logger then you cannot
- change the enabled state at runtime to vary the logging
- that is produced. You have to decide if you need absolute
- speed or runtime flexibility.
- </para>
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/>
- </member>
- <member name="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled">
- <summary>
- Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Info"/> level.
- </summary>
- <value>
- <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Info"/> events, <c>false</c> otherwise.
- </value>
- <remarks>
- For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled">
- <summary>
- Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Warn"/> level.
- </summary>
- <value>
- <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Warn"/> events, <c>false</c> otherwise.
- </value>
- <remarks>
- For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled">
- <summary>
- Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Error"/> level.
- </summary>
- <value>
- <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Error"/> events, <c>false</c> otherwise.
- </value>
- <remarks>
- For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled">
- <summary>
- Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Fatal"/> level.
- </summary>
- <value>
- <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Fatal"/> events, <c>false</c> otherwise.
- </value>
- <remarks>
- For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
- </remarks>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
- <seealso cref="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/>
- <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
- </member>
- <member name="M:DotNetOpenId.Loggers.TraceLogger.Initialize">
- <summary>
- Returns a new logger that uses the <see cref="T:System.Diagnostics.Trace"/> class
- if sufficient CAS permissions are granted to use it, otherwise returns false.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Loggers.Log4NetLogger.Initialize">
- <summary>
- Returns a new log4net logger if it exists, or returns null if the assembly cannot be found.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Loggers.Log4NetLogger.createLogger">
- <summary>
- Creates the log4net.LogManager. Call ONLY once log4net.dll is known to be present.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Loggers.NoOpLogger.Initialize">
- <summary>
- Returns a new logger that does nothing when invoked.
- </summary>
- </member>
- <member name="T:DotNetOpenId.ProtocolVersion">
- <summary>
- An enumeration of the OpenID protocol versions supported by this library.
- </summary>
- </member>
- <member name="F:DotNetOpenId.ProtocolVersion.V10">
- <summary>
- OpenID Authentication 1.0
- </summary>
- </member>
- <member name="F:DotNetOpenId.ProtocolVersion.V11">
- <summary>
- OpenID Authentication 1.1
- </summary>
- </member>
- <member name="F:DotNetOpenId.ProtocolVersion.V20">
- <summary>
- OpenID Authentication 2.0
- </summary>
- </member>
- <member name="T:DotNetOpenId.Protocol">
- <summary>
- Tracks the several versions of OpenID this library supports and the unique
- constants to each version used in the protocol.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.AllVersions">
- <summary>
- A list of all supported OpenID versions, in order starting from newest version.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.Default">
- <summary>
- The default (or most recent) supported version of the OpenID protocol.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Protocol.Detect(System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Attempts to detect the right OpenID protocol version based on the contents
- of an incoming OpenID <i>indirect</i> message or <i>direct request</i>.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Protocol.DetectFromDirectResponse(System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Attempts to detect the right OpenID protocol version based on the contents
- of an incoming OpenID <i>direct</i> response message.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Protocol.Detect(System.String[])">
- <summary>
- Attemps to detect the highest OpenID protocol version supported given a set
- of XRDS Service Type URIs included for some service.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.Version">
- <summary>
- The OpenID version that this <see cref="T:DotNetOpenId.Protocol"/> instance describes.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.XmlNamespace">
- <summary>
- The namespace of OpenId 1.x elements in XRDS documents.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.QueryDeclaredNamespaceVersion">
- <summary>
- The value of the openid.ns parameter that appears on the query string
- whenever data is passed between relying party and provider for OpenID 2.0
- and later.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.ClaimedIdentifierServiceTypeURI">
- <summary>
- The XRD/Service/Type value discovered in an XRDS document when
- "discovering" on a Claimed Identifier (http://andrewarnott.yahoo.com)
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.OPIdentifierServiceTypeURI">
- <summary>
- The XRD/Service/Type value discovered in an XRDS document when
- "discovering" on an OP Identifier rather than a Claimed Identifier.
- (http://yahoo.com)
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.RPReturnToTypeURI">
- <summary>
- The XRD/Service/Type value discovered in an XRDS document when
- "discovering" on a Realm URL and looking for the endpoint URL
- that can receive authentication assertions.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.ClaimedIdentifierForOPIdentifier">
- <summary>
- Used as the Claimed Identifier and the OP Local Identifier when
- the User Supplied Identifier is an OP Identifier.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.HtmlDiscoveryProviderKey">
- <summary>
- The value of the 'rel' attribute in an HTML document's LINK tag
- when the same LINK tag's HREF attribute value contains the URL to an
- OP Endpoint URL.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.HtmlDiscoveryLocalIdKey">
- <summary>
- The value of the 'rel' attribute in an HTML document's LINK tag
- when the same LINK tag's HREF attribute value contains the URL to use
- as the OP Local Identifier.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.openid">
- <summary>
- Parts of the protocol that define parameter names that appear in the
- query string. Each parameter name is prefixed with 'openid.'.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.openidnp">
- <summary>
- Parts of the protocol that define parameter names that appear in the
- query string. Each parameter name is NOT prefixed with 'openid.'.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.Args">
- <summary>
- The various 'constants' that appear as parameter arguments (values).
- </summary>
- </member>
- <member name="F:DotNetOpenId.Protocol.MaximumUserAgentAuthenticationTime">
- <summary>
- The maximum time a user can be allowed to take to complete authentication.
- </summary>
- <remarks>
- This is used to calculate the length of time that nonces are stored.
- This is internal until we can decide whether to leave this static, or make
- it an instance member, or put it inside the IConsumerApplicationStore interface.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Protocol.MaximumAllowableTimeSkew">
- <summary>
- The maximum permissible difference in clocks between relying party and
- provider web servers, discounting time zone differences.
- </summary>
- <remarks>
- This is used when storing/validating nonces from the provider.
- If it is conceivable that a server's clock could be up to five minutes
- off from true UTC time, then the maximum time skew should be set to
- ten minutes to allow one server to be five minutes ahead and the remote
- server to be five minutes behind and still be able to communicate.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Protocol.ProtocolVersion">
- <summary>
- Returns the <see cref="P:DotNetOpenId.Protocol.ProtocolVersion"/> enum value for the <see cref="T:DotNetOpenId.Protocol"/> instance.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Protocol.QueryArguments.SessionTypes.All">
- <summary>
- A preference order list of all supported session types.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Protocol.QueryArguments.SignatureAlgorithms.All">
- <summary>
- A preference order list of signature algorithms we support.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.AssertionMessage.CreateUnsolicitedAssertion(DotNetOpenId.Provider.OpenIdProvider,DotNetOpenId.Realm,DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
- <summary>
- Creates a message that can be sent to a user agent to redirect them to a
- relying party web site complete with authentication information to
- automatically log them into that web site.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Provider.RelyingPartyReceivingEndpoint.supportedServiceTypeUris">
- <summary>
- The Type URIs of supported services advertised on a relying party's XRDS document.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.RelyingPartyReceivingEndpoint.RelyingPartyEndpoint">
- <summary>
- The URL to the login page on the discovered relying party web site.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.RelyingPartyReceivingEndpoint.Protocol">
- <summary>
- The OpenId protocol that the discovered relying party supports.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AssociateRequest.#ctor(DotNetOpenId.RelyingParty.OpenIdRelyingParty,DotNetOpenId.RelyingParty.ServiceEndpoint,System.Collections.Generic.IDictionary{System.String,System.String},Org.Mentalis.Security.Cryptography.DiffieHellman)">
- <summary>
- Instantiates an <see cref="T:DotNetOpenId.RelyingParty.AssociateRequest"/> object.
- </summary>
- <param name="relyingParty">The RP instance that is creating this request.</param>
- <param name="provider">The discovered OpenID Provider endpoint information.</param>
- <param name="args">The arguments assembled for sending to the Provider.</param>
- <param name="dh">Optional. Supplied only if Diffie-Hellman is used for encrypting the association secret key.</param>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AssociateResponse.SecondAttempt">
- <summary>
- A custom-made associate request to try again when an OP
- doesn't support the settings we suggested, but we support
- the ones the OP suggested.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.AuthenticationRequestMode">
- <summary>
- Indicates the mode the Provider should use while authenticating the end user.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.AuthenticationRequestMode.Immediate">
- <summary>
- The Provider should use whatever credentials are immediately available
- to determine whether the end user owns the Identifier. If sufficient
- credentials (i.e. cookies) are not immediately available, the Provider
- should fail rather than prompt the user.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.AuthenticationRequestMode.Setup">
- <summary>
- The Provider should determine whether the end user owns the Identifier,
- displaying a web page to the user to login etc., if necessary.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.IAuthenticationRequest">
- <summary>
- Instances of this interface represent relying party authentication
- requests that may be queried/modified in specific ways before being
- routed to the OpenID Provider.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.AddCallbackArguments(System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Adds given key/value pairs to the query that the provider will use in
- the request to return to the consumer web site.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.AddCallbackArguments(System.String,System.String)">
- <summary>
- Adds a given key/value pair to the query that the provider will use in
- the request to return to the consumer web site.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.AddExtension(DotNetOpenId.Extensions.IExtensionRequest)">
- <summary>
- Adds an OpenID extension to the request directed at the OpenID provider.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.RedirectToProvider">
- <summary>
- Redirects the user agent to the provider for authentication.
- Execution of the current page terminates after this call.
- </summary>
- <remarks>
- This method requires an ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.Mode">
- <summary>
- Gets/sets the mode the Provider should use during authentication.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.RedirectingResponse">
- <summary>
- Gets the HTTP response the relying party should send to the user agent
- to redirect it to the OpenID Provider to start the OpenID authentication process.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ReturnToUrl">
- <summary>
- Gets the URL that the user agent will return to after authentication
- completes or fails at the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.Realm">
- <summary>
- Gets the URL that identifies this consumer web application that
- the Provider will display to the end user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ClaimedIdentifier">
- <summary>
- Gets the Claimed Identifier that the User Supplied Identifier
- resolved to. Null if the user provided an OP Identifier
- (directed identity).
- </summary>
- <remarks>
- Null is returned if the user is using the directed identity feature
- of OpenID 2.0 to make it nearly impossible for a relying party site
- to improperly store the reserved OpenID URL used for directed identity
- as a user's own Identifier.
- However, to test for the Directed Identity feature, please test the
- <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.IsDirectedIdentity"/> property rather than testing this
- property for a null value.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.IsDirectedIdentity">
- <summary>
- Gets whether the authenticating user has chosen to let the Provider
- determine and send the ClaimedIdentifier after authentication.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.Provider">
- <summary>
- Gets information about the OpenId Provider, as advertised by the
- OpenId discovery documents found at the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ClaimedIdentifier"/>
- location.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ProviderVersion">
- <summary>
- The detected version of OpenID implemented by the Provider.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.filterAndSortEndpoints(System.Collections.ObjectModel.ReadOnlyCollection{DotNetOpenId.RelyingParty.ServiceEndpoint},DotNetOpenId.RelyingParty.OpenIdRelyingParty)">
- <summary>
- Returns a filtered and sorted list of the available OP endpoints for a discovered Identifier.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.selectEndpoint(System.Collections.ObjectModel.ReadOnlyCollection{DotNetOpenId.RelyingParty.ServiceEndpoint},DotNetOpenId.RelyingParty.OpenIdRelyingParty)">
- <summary>
- Chooses which provider endpoint is the best one to use.
- </summary>
- <returns>The best endpoint, or null if no acceptable endpoints were found.</returns>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.AddCallbackArguments(System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Adds given key/value pairs to the query that the provider will use in
- the request to return to the consumer web site.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.AddCallbackArguments(System.String,System.String)">
- <summary>
- Adds a given key/value pair to the query that the provider will use in
- the request to return to the consumer web site.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.RedirectToProvider">
- <summary>
- Redirects the user agent to the provider for authentication.
- Execution of the current page terminates after this call.
- </summary>
- <remarks>
- This method requires an ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.OutgoingExtensions">
- <summary>
- Extension arguments to pass to the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.ReturnToArgs">
- <summary>
- Arguments to add to the return_to part of the query string, so that
- these values come back to the consumer when the user agent returns.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.ProviderVersion">
- <summary>
- The detected version of OpenID implemented by the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.DotNetOpenId#RelyingParty#IAuthenticationRequest#Provider">
- <summary>
- Gets information about the OpenId Provider, as advertised by the
- OpenId discovery documents found at the <see cref="P:DotNetOpenId.RelyingParty.AuthenticationRequest.ClaimedIdentifier"/>
- location.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.RedirectingResponse">
- <summary>
- Gets the response to send to the user agent to begin the
- OpenID authentication process.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.AuthenticationStatus">
- <summary>
- An enumeration of the possible results of an authentication attempt.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Canceled">
- <summary>
- The authentication was canceled by the user agent while at the provider.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Failed">
- <summary>
- The authentication failed because an error was detected in the OpenId communication.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.SetupRequired">
- <summary>
- <para>The Provider responded to a request for immediate authentication approval
- with a message stating that additional user agent interaction is required
- before authentication can be completed.</para>
- <para>Casting the <see cref="T:DotNetOpenId.RelyingParty.IAuthenticationResponse"/> to a
- <see cref="T:DotNetOpenId.RelyingParty.ISetupRequiredAuthenticationResponse"/> in this case can help
- you retry the authentication using setup (non-immediate) mode.</para>
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Authenticated">
- <summary>
- Authentication is completed successfully.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.IAuthenticationResponse">
- <summary>
- An instance of this interface represents an identity assertion
- from an OpenID Provider. It may be in response to an authentication
- request previously put to it by a Relying Party site or it may be an
- unsolicited assertion.
- </summary>
- <remarks>
- Relying party web sites should handle both solicited and unsolicited
- assertions. This interface does not offer a way to discern between
- solicited and unsolicited assertions as they should be treated equally.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IAuthenticationResponse.GetExtension``1">
- <summary>
- Tries to get an OpenID extension that may be present in the response.
- </summary>
- <returns>The extension, if it is found. Null otherwise.</returns>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IAuthenticationResponse.GetExtension(System.Type)">
- <summary>
- Tries to get an OpenID extension that may be present in the response.
- </summary>
- <returns>The extension, if it is found. Null otherwise.</returns>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.ClaimedIdentifier">
- <summary>
- An Identifier that the end user claims to own. For use with user database storage and lookup.
- May be null for some failed authentications (i.e. failed directed identity authentications).
- </summary>
- <remarks>
- <para>
- This is the secure identifier that should be used for database storage and lookup.
- It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects
- user identities against spoofing and other attacks.
- </para>
- <para>
- For user-friendly identifiers to display, use the
- <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay"/> property.
- </para>
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay">
- <summary>
- Gets a user-friendly OpenID Identifier for display purposes ONLY.
- </summary>
- <remarks>
- <para>
- This <i>should</i> be put through <see cref="M:System.Web.HttpUtility.HtmlEncode(System.String)"/> before
- sending to a browser to secure against javascript injection attacks.
- </para>
- <para>
- This property retains some aspects of the user-supplied identifier that get lost
- in the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.ClaimedIdentifier"/>. For example, XRIs used as user-supplied
- identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD).
- For display purposes, such as text on a web page that says "You're logged in as ...",
- this property serves to provide the =Arnott string, or whatever else is the most friendly
- string close to what the user originally typed in.
- </para>
- <para>
- If the user-supplied identifier is a URI, this property will be the URI after all
- redirects, and with the protocol and fragment trimmed off.
- If the user-supplied identifier is an XRI, this property will be the original XRI.
- If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com),
- this property will be the Claimed Identifier, with the protocol stripped if it is a URI.
- </para>
- <para>
- It is <b>very</b> important that this property <i>never</i> be used for database storage
- or lookup to avoid identity spoofing and other security risks. For database storage
- and lookup please use the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.ClaimedIdentifier"/> property.
- </para>
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.Status">
- <summary>
- The detailed success or failure status of the authentication attempt.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.Exception">
- <summary>
- Details regarding a failed authentication attempt, if available.
- This will be set if and only if <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.Status"/> is <see cref="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Failed"/>.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.ISetupRequiredAuthenticationResponse">
- <summary>
- An interface to expose useful properties and functionality for handling
- authentication responses that are returned from Immediate authentication
- requests that require a subsequent request to be made in non-immediate mode.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ISetupRequiredAuthenticationResponse.ClaimedOrProviderIdentifier">
- <summary>
- The <see cref="T:DotNetOpenId.Identifier"/> to pass to <see cref="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier)"/>
- in a subsequent authentication attempt.
- </summary>
- <remarks>
- When directed identity is used, this will be the Provider Identifier given by the user.
- Otherwise it will be the Claimed Identifier derived from the user-supplied identifier.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.AuthenticationResponse.signedArguments">
- <summary>
- The arguments returned from the OP that were signed.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.GetExtension``1">
- <summary>
- Tries to get an OpenID extension that may be present in the response.
- </summary>
- <typeparam name="T">The extension to retrieve.</typeparam>
- <returns>The extension, if it is found. Null otherwise.</returns>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifyReturnTo(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.ServiceEndpoint,System.Uri)">
- <summary>
- Verifies that the openid.return_to field matches the URL of the actual HTTP request.
- </summary>
- <remarks>
- From OpenId Authentication 2.0 section 11.1:
- To verify that the "openid.return_to" URL matches the URL that is processing this assertion:
- * The URL scheme, authority, and path MUST be the same between the two URLs.
- * Any query parameters that are present in the "openid.return_to" URL MUST
- also be present with the same values in the URL of the HTTP request the RP received.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifyDiscoveredInfoMatchesAssertedInfo(DotNetOpenId.RelyingParty.OpenIdRelyingParty,System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.ServiceEndpoint,DotNetOpenId.RelyingParty.ServiceEndpoint)">
- <remarks>
- This is documented in OpenId Authentication 2.0 section 11.2.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifyFieldsAreSigned(System.String[],System.String[])">
- <summary>
- Checks that fields that must be signed are in fact signed.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifySignatureByAssociation(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.Protocol,System.String[],DotNetOpenId.Association)">
- <summary>
- Verifies that a query is signed and that the signed fields have not been tampered with.
- </summary>
- <exception cref="T:DotNetOpenId.OpenIdException">Thrown when the signature is missing or the query has been tampered with.</exception>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifySignatureByProvider(DotNetOpenId.RelyingParty.OpenIdRelyingParty,System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.ServiceEndpoint)">
- <summary>
- Performs a dumb-mode authentication verification by making an extra
- request to the provider after the user agent was redirected back
- to the consumer site with an authenticated status.
- </summary>
- <returns>Whether the authentication is valid.</returns>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Status">
- <summary>
- The detailed success or failure status of the authentication attempt.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Exception">
- <summary>
- Details regarding a failed authentication attempt, if available.
- This will only be set if <see cref="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Status"/> is <see cref="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Failed"/>,
- but may sometimes by null in this case as well.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.ClaimedIdentifier">
- <summary>
- An Identifier that the end user claims to own.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.FriendlyIdentifierForDisplay">
- <summary>
- Gets a user-friendly OpenID Identifier for display purposes ONLY.
- </summary>
- <remarks>
- See <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay"/>.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Provider">
- <summary>
- The discovered endpoint information.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.IncomingExtensions">
- <summary>
- Gets the set of arguments that the Provider included as extensions.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.ClaimedOrProviderIdentifier">
- <summary>
- The <see cref="T:DotNetOpenId.Identifier"/> to pass to <see cref="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier)"/>
- in a subsequent authentication attempt.
- </summary>
- <remarks>
- When directed identity is used, this will be the Provider Identifier given by the user.
- Otherwise it will be the Claimed Identifier derived from the user-supplied identifier.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.IRelyingPartyApplicationStore">
- <summary>
- The contract for implementing a custom store for a relying party web site.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.INonceStore">
- <summary>
- The contract for recalling nonces during their useful lifetime.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.INonceStore.TryStoreNonce(DotNetOpenId.Nonce)">
- <summary>
- Stores a nonce at least until it expires.
- </summary>
- <returns>
- True if the nonce was stored and did not exist previous to this call.
- False if the nonce already exists in the store.
- </returns>
- <remarks>
- <para>When persisting nonce instances, only the <see cref="P:DotNetOpenId.Nonce.Code"/> and <see cref="P:DotNetOpenId.Nonce.ExpirationDate"/>
- properties are significant. The Code property is used for checking prior nonce use,
- and the ExpirationDate for rapid deletion of expired nonces.</para>
- <para>Nonces never need to be deserialized.</para>
- <para>When checking if a nonce already exists, only the Nonce.Code field should be compared.</para>
- <para>Checking for the prior existence of the given nonce and adding the nonce if it
- did not previously exist must be an atomic operation to prevent replay attacks
- in the race condition of two threads trying to store the same nonce at the same time.
- This should be done by using a UNIQUE constraint on the Nonce.Code column, and perhaps
- a transaction that guarantees repeatable READ operations to ensure that no other process
- can add a given nonce once you've verified that it's not there.</para>
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.INonceStore.ClearExpiredNonces">
- <summary>
- Hints to the store to clear expired nonces.
- </summary>
- <remarks>
- If another algorithm is in place to periodically clear out expired nonces,
- this method call may be ignored.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.INonceStore.SecretSigningKey">
- <summary>
- Gets some key that can be used for signing. Any positive length can be used, but a
- length of 64 bytes is recommended.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.IProviderEndpoint">
- <summary>
- Information published about an OpenId Provider by the
- OpenId discovery documents found at a user's Claimed Identifier.
- </summary>
- <remarks>
- Because information provided by this interface is suppplied by a
- user's individually published documents, it may be incomplete or inaccurate.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IProviderEndpoint.IsExtensionSupported``1">
- <summary>
- Checks whether the OpenId Identifier claims support for a given extension.
- </summary>
- <typeparam name="T">The extension whose support is being queried.</typeparam>
- <returns>True if support for the extension is advertised. False otherwise.</returns>
- <remarks>
- Note that a true or false return value is no guarantee of a Provider's
- support for or lack of support for an extension. The return value is
- determined by how the authenticating user filled out his/her XRDS document only.
- The only way to be sure of support for a given extension is to include
- the extension in the request and see if a response comes back for that extension.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IProviderEndpoint.IsExtensionSupported(System.Type)">
- <summary>
- Checks whether the OpenId Identifier claims support for a given extension.
- </summary>
- <param name="extensionType">The extension whose support is being queried.</param>
- <returns>True if support for the extension is advertised. False otherwise.</returns>
- <remarks>
- Note that a true or false return value is no guarantee of a Provider's
- support for or lack of support for an extension. The return value is
- determined by how the authenticating user filled out his/her XRDS document only.
- The only way to be sure of support for a given extension is to include
- the extension in the request and see if a response comes back for that extension.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IProviderEndpoint.Version">
- <summary>
- The detected version of OpenID implemented by the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IProviderEndpoint.Uri">
- <summary>
- The URL that the OpenID Provider receives authentication requests at.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint">
- <summary>
- An <see cref="T:DotNetOpenId.RelyingParty.IProviderEndpoint"/> interface with additional members for use
- in sorting for most preferred endpoint.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.IsTypeUriPresent(System.String)">
- <summary>
- Checks for the presence of a given Type URI in an XRDS service.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.ServicePriority">
- <summary>
- Gets the priority associated with this service that may have been given
- in the XRDS document.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.UriPriority">
- <summary>
- Gets the priority associated with the service endpoint URL.
- </summary>
- <remarks>
- When sorting by priority, this property should be considered second after
- <see cref="P:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.ServicePriority"/>.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.OpenIdMobileTextBox">
- <summary>
- An ASP.NET control for mobile devices that provides a minimal text box that is OpenID-aware.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.UsePersistentCookieDefault">
- <summary>
- Default value of <see cref="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.UsePersistentCookie"/>.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnLoad(System.EventArgs)">
- <summary>
- Checks for incoming OpenID authentication responses and fires appropriate events.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Request">
- <summary>
- The OpenID authentication request that is about to be sent.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.PrepareAuthenticationRequest">
- <summary>
- Constructs the authentication request and adds the Simple Registration extension arguments.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.LogOn">
- <summary>
- Immediately redirects to the OpenID Provider to verify the Identifier
- provided in the text box.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnLoggedIn(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.LoggedIn"/> event.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnFailed(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Failed"/> event.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnCanceled(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Canceled"/> event.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnSetupRequired(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.SetupRequired"/> event.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RealmUrl">
- <summary>
- The OpenID <see cref="T:DotNetOpenId.Realm"/> of the relying party web site.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.ImmediateMode">
- <summary>
- True if a Provider should reply immediately to the authentication request
- without interacting with the user. False if the Provider can take time
- to authenticate the user in order to complete an authentication attempt.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.UsePersistentCookie">
- <summary>
- Whether to send a persistent cookie upon successful
- login so the user does not have to log in upon returning to this site.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestNickname">
- <summary>
- Gets/sets your level of interest in receiving the user's nickname from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestEmail">
- <summary>
- Gets/sets your level of interest in receiving the user's email address from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestFullName">
- <summary>
- Gets/sets your level of interest in receiving the user's full name from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestBirthDate">
- <summary>
- Gets/sets your level of interest in receiving the user's birthdate from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestGender">
- <summary>
- Gets/sets your level of interest in receiving the user's gender from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestPostalCode">
- <summary>
- Gets/sets your level of interest in receiving the user's postal code from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestCountry">
- <summary>
- Gets/sets your level of interest in receiving the user's country from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestLanguage">
- <summary>
- Gets/sets your level of interest in receiving the user's preferred language from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestTimeZone">
- <summary>
- Gets/sets your level of interest in receiving the user's time zone from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.PolicyUrl">
- <summary>
- Gets/sets the URL to your privacy policy page that describes how
- claims will be used and/or shared.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.EnableRequestProfile">
- <summary>
- Turns the entire Simple Registration extension on or off.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.LoggedIn">
- <summary>
- Fired upon completion of a successful login.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Failed">
- <summary>
- Fired when a login attempt fails.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Canceled">
- <summary>
- Fired when an authentication attempt is canceled at the OpenID Provider.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.SetupRequired">
- <summary>
- Fired when an Immediate authentication attempt fails, and the Provider suggests using non-Immediate mode.
- </summary>
- </member>
- <member name="T:DotNetOpenId.UntrustedWebRequest">
- <summary>
- A paranoid HTTP get/post request engine. It helps to protect against attacks from remote
- server leaving dangling connections, sending too much data, causing requests against
- internal servers, etc.
- </summary>
- <remarks>
- Protections include:
- * Conservative maximum time to receive the complete response.
- * Only HTTP and HTTPS schemes are permitted.
- * Internal IP address ranges are not permitted: 127.*.*.*, 1::*
- * Internal host names are not permitted (periods must be found in the host name)
- If a particular host would be permitted but is in the blacklist, it is not allowed.
- If a particular host would not be permitted but is in the whitelist, it is allowed.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.UntrustedWebRequest.MockRequests">
- <summary>
- Used in unit testing to mock HTTP responses to expected requests.
- </summary>
- <remarks>
- If null, no mocking will take place. But if non-null, all requests
- will be channeled through this mock method for processing.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.UntrustedWebRequest.readData(System.Net.HttpWebResponse,System.Byte[]@,System.Int32@)">
- <summary>
- Reads a maximum number of bytes from a response stream.
- </summary>
- <returns>
- The number of bytes actually read.
- WARNING: This can be fewer than the size of the returned buffer.
- </returns>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.MaximumBytesToRead">
- <summary>
- The default maximum bytes to read in any given HTTP request.
- Default is 1MB. Cannot be less than 2KB.
- </summary>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.MaximumRedirections">
- <summary>
- The total number of redirections to allow on any one request.
- Default is 10.
- </summary>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.ReadWriteTimeout">
- <summary>
- Gets the time allowed to wait for single read or write operation to complete.
- Default is 500 milliseconds.
- </summary>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.Timeout">
- <summary>
- Gets the time allowed for an entire HTTP request.
- Default is 5 seconds.
- </summary>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.WhitelistHosts">
- <summary>
- A collection of host name literals that should be allowed even if they don't
- pass standard security checks.
- </summary>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.WhitelistHostsRegex">
- <summary>
- A collection of host name regular expressions that indicate hosts that should
- be allowed even though they don't pass standard security checks.
- </summary>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.BlacklistHosts">
- <summary>
- A collection of host name literals that should be rejected even if they
- pass standard security checks.
- </summary>
- </member>
- <member name="P:DotNetOpenId.UntrustedWebRequest.BlacklistHostsRegex">
- <summary>
- A collection of host name regular expressions that indicate hosts that should
- be rjected even if they pass standard security checks.
- </summary>
- </member>
- <member name="M:DotNetOpenId.UntrustedWebResponse.#ctor(System.Uri,System.Uri,System.Net.WebHeaderCollection,System.Net.HttpStatusCode,System.String,System.String,System.IO.Stream)">
- <summary>
- Constructs a mock web response.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Nonce">
- <summary>
- Represents some unique value that can help prevent replay attacks.
- </summary>
- <remarks>
- When persisting nonce instances, only the <see cref="P:DotNetOpenId.Nonce.Code"/> and <see cref="P:DotNetOpenId.Nonce.ExpirationDate"/>
- properties are significant. Nonces never need to be deserialized.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Nonce.allowedCharacters">
- <summary>
- These are the characters that may be chosen from when forming a random nonce,
- per the OpenID 2.0 Authentication spec section 10.1.
- </summary>
- <remarks>
- The following characters are allowed in the spec, but because they can cause validation
- failures with ASP.NET query validation (XSS-detection) they are deliberately left out of
- the set of characters we choose from: &lt; &amp;
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Nonce.#ctor(System.String,System.Boolean)">
- <summary>
- Deserializes a nonce from a string passed to us.
- </summary>
- <param name="code">
- A nonce in the format described by the OpenID Authentication 2.0
- spec section 10.1. Specifically, it should be in the format:
- 2005-05-15T17:11:51ZUNIQUE
- </param>
- <param name="remoteServerOrigin"></param>
- </member>
- <member name="M:DotNetOpenId.Nonce.Equals(System.Object)">
- <summary>
- Tests equality of two <see cref="T:DotNetOpenId.Nonce"/> objects.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Nonce.GetHashCode">
- <summary>
- Gets the hash code.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Nonce.ToString">
- <summary>
- Returns the string representation of the <see cref="T:DotNetOpenId.Nonce"/>.
- This is the <see cref="P:DotNetOpenId.Nonce.Code"/> property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Nonce.Code">
- <summary>
- The string form of the nonce that can be transmitted with an authentication
- request or response.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Nonce.CreationDate">
- <summary>
- The UTC date/time this nonce was generated.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Nonce.IsExpired">
- <summary>
- Gets whether this nonce is so old it no longer needs to be stored.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Nonce.ExpirationDate">
- <summary>
- Gets the UTC date beyond which this nonce is no longer valid, so storing
- a nonce for replay attack protection is only necessary until this time.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.OpenIdRelyingParty">
- <summary>
- Provides the programmatic facilities to act as an OpenId consumer.
- </summary>
- <remarks>
- For easier, ASP.NET designer drop-in support for adding OpenID login support,
- see the <see cref="T:DotNetOpenId.RelyingParty.OpenIdLogin"/> or <see cref="T:DotNetOpenId.RelyingParty.OpenIdTextBox"/> controls.
- </remarks>
- <example>
- <code language="ASP.NET">
- &lt;h2&gt;Login Page &lt;/h2&gt;
- &lt;asp:Label ID="Label1" runat="server" Text="OpenID Login" /&gt;
- &lt;asp:TextBox ID="openIdBox" runat="server" /&gt;
- &lt;asp:Button ID="loginButton" runat="server" Text="Login" OnClick="loginButton_Click" /&gt;
- &lt;asp:CustomValidator runat="server" ID="openidValidator" ErrorMessage="Invalid OpenID Identifier"
- ControlToValidate="openIdBox" EnableViewState="false" OnServerValidate="openidValidator_ServerValidate" /&gt;
- &lt;br /&gt;
- &lt;asp:Label ID="loginFailedLabel" runat="server" EnableViewState="False" Text="Login failed"
- Visible="False" /&gt;
- &lt;asp:Label ID="loginCanceledLabel" runat="server" EnableViewState="False" Text="Login canceled"
- Visible="False" /&gt;
- </code>
- <code language="c#">
- protected void openidValidator_ServerValidate(object source, ServerValidateEventArgs args) {
- // This catches common typos that result in an invalid OpenID Identifier.
- args.IsValid = Identifier.IsValid(args.Value);
- }
-
- protected void loginButton_Click(object sender, EventArgs e) {
- if (!Page.IsValid) return; // don't login if custom validation failed.
- OpenIdRelyingParty openid = new OpenIdRelyingParty();
- try {
- IAuthenticationRequest request = openid.CreateRequest(openIdBox.Text);
- // This is where you would add any OpenID extensions you wanted
- // to include in the authentication request.
- // request.AddExtension(someExtensionRequestInstance);
-
- // Send your visitor to their Provider for authentication.
- request.RedirectToProvider();
- } catch (OpenIdException ex) {
- // The user probably entered an Identifier that
- // was not a valid OpenID endpoint.
- openidValidator.Text = ex.Message;
- openidValidator.IsValid = false;
- }
- }
-
- protected void Page_Load(object sender, EventArgs e) {
- openIdBox.Focus();
-
- OpenIdRelyingParty openid = new OpenIdRelyingParty();
- if (openid.Response != null) {
- switch (openid.Response.Status) {
- case AuthenticationStatus.Authenticated:
- // This is where you would look for any OpenID extension responses included
- // in the authentication assertion.
- // var extension = openid.Response.GetExtension&lt;SomeExtensionResponseType&gt;();
-
- // Use FormsAuthentication to tell ASP.NET that the user is now logged in,
- // with the OpenID Claimed Identifier as their username.
- FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false);
- break;
- case AuthenticationStatus.Canceled:
- loginCanceledLabel.Visible = true;
- break;
- case AuthenticationStatus.Failed:
- loginFailedLabel.Visible = true;
- break;
- // We don't need to handle SetupRequired because we're not setting
- // IAuthenticationRequest.Mode to immediate mode.
- //case AuthenticationStatus.SetupRequired:
- // break;
- }
- }
- }
- </code>
- </example>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.#ctor">
- <summary>
- Constructs an OpenId consumer that uses the current HttpContext request
- and uses the HttpApplication dictionary as its association store.
- </summary>
- <remarks>
- This method requires a current ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.#ctor(DotNetOpenId.RelyingParty.IRelyingPartyApplicationStore,System.Uri,System.Collections.Specialized.NameValueCollection)">
- <summary>
- Constructs an OpenId consumer that uses a given querystring and IAssociationStore.
- </summary>
- <param name="store">
- The application-level store where associations with other OpenId providers can be
- preserved for optimized authentication and information about nonces can be stored.
- In a multi-server web farm environment, this store MUST be shared across
- all servers. Optional: if null, the relying party will operate in stateless mode.
- </param>
- <param name="requestUrl">
- Optional. The current incoming HTTP request that may contain an OpenId assertion.
- If not included, any OpenId authentication assertions will not be processed.
- </param>
- <param name="query">
- The name/value pairs that came in on the
- QueryString of a GET request or in the entity of a POST request.
- For example: (Request.HttpMethod == "GET" ? Request.QueryString : Request.Form).
- This must be supplied if <paramref name="requestUrl"/> is supplied.
- </param>
- <remarks>
- The IRelyingPartyApplicationStore must be shared across an entire web farm
- because of the design of how nonces are stored/retrieved. Even if
- a given visitor is guaranteed to have affinity toward one server,
- replay attacks from another host may be directed at another server,
- which must therefore share the nonce information in the application
- state store in order to stop the intruder.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier,DotNetOpenId.Realm,System.Uri)">
- <summary>
- Creates an authentication request to verify that a user controls
- some given Identifier.
- </summary>
- <param name="userSuppliedIdentifier">
- The Identifier supplied by the user. This may be a URL, an XRI or i-name.
- </param>
- <param name="realm">
- The shorest URL that describes this relying party web site's address.
- For example, if your login page is found at https://www.example.com/login.aspx,
- your realm would typically be https://www.example.com/.
- </param>
- <param name="returnToUrl">
- The URL of the login page, or the page prepared to receive authentication
- responses from the OpenID Provider.
- </param>
- <returns>
- An authentication request object that describes the HTTP response to
- send to the user agent to initiate the authentication.
- </returns>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier,DotNetOpenId.Realm)">
- <summary>
- Creates an authentication request to verify that a user controls
- some given Identifier.
- </summary>
- <param name="userSuppliedIdentifier">
- The Identifier supplied by the user. This may be a URL, an XRI or i-name.
- </param>
- <param name="realm">
- The shorest URL that describes this relying party web site's address.
- For example, if your login page is found at https://www.example.com/login.aspx,
- your realm would typically be https://www.example.com/.
- </param>
- <returns>
- An authentication request object that describes the HTTP response to
- send to the user agent to initiate the authentication.
- </returns>
- <remarks>
- This method requires an ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier)">
- <summary>
- Creates an authentication request to verify that a user controls
- some given Identifier.
- </summary>
- <param name="userSuppliedIdentifier">
- The Identifier supplied by the user. This may be a URL, an XRI or i-name.
- </param>
- <returns>
- An authentication request object that describes the HTTP response to
- send to the user agent to initiate the authentication.
- </returns>
- <remarks>
- This method requires an ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.isAuthenticationResponseReady">
- <summary>
- Gets whether an OpenId provider's response to a prior authentication challenge
- is embedded in this web request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Response">
- <summary>
- Gets the result of a user agent's visit to his OpenId provider in an
- authentication attempt. Null if no response is available.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Encoder">
- <summary>
- The message encoder to use.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.EndpointOrder">
- <summary>
- Gets/sets the ordering routine that will determine which XRDS
- Service element to try first
- </summary>
- <remarks>
- This may never be null. To reset to default behavior this property
- can be set to the value of <see cref="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.DefaultEndpointOrder"/>.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.DefaultEndpointOrder">
- <summary>
- Gets an XRDS sorting routine that uses the XRDS Service/@Priority
- attribute to determine order.
- </summary>
- <remarks>
- Endpoints lacking any priority value are sorted to the end of the list.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.EndpointFilter">
- <summary>
- Provides a way to optionally filter the providers that may be used in authenticating a user.
- </summary>
- <remarks>
- If provided, the delegate should return true to accept an endpoint, and false to reject it.
- If null, all identity providers will be accepted. This is the default.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.HttpApplicationStore">
- <summary>
- The standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary
- to store associations and nonces.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Settings">
- <summary>
- Provides access to the adjustable security settings of this instance
- of <see cref="T:DotNetOpenId.RelyingParty.OpenIdRelyingParty"/>.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Configuration">
- <summary>
- Gets the relevant Configuration section for this OpenIdRelyingParty.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.EndpointSelector">
- <summary>
- A delegate that decides whether a given OpenID Provider endpoint may be
- considered for authenticating a user.
- </summary>
- <returns>
- True if the endpoint should be considered.
- False to remove it from the pool of acceptable providers.
- </returns>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.Token">
- <summary>
- A state-containing bit of non-confidential data that is sent to the
- user agent as part of the return_to URL so we can read from it later.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.Token.Serialize(DotNetOpenId.RelyingParty.INonceStore)">
- <summary>
- Serializes this <see cref="T:DotNetOpenId.RelyingParty.Token"/> instance as a string that can be
- included as part of a return_to variable in a querystring.
- This string is cryptographically signed to protect against tampering.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.Token.Deserialize(System.String,DotNetOpenId.RelyingParty.INonceStore)">
- <summary>
- Deserializes a token returned to us from the provider and verifies its integrity.
- </summary>
- <remarks>
- As part of deserialization, the signature is verified to check
- for tampering, and the nonce (if included by the RP) is also checked.
- If no signature is present (due to stateless mode), the endpoint is verified
- by discovery (slow but secure).
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.Token.persistNonce(DotNetOpenId.RelyingParty.ServiceEndpoint,DotNetOpenId.RelyingParty.INonceStore)">
- <summary>
- Whether a relying party-side nonce should be used to protect
- against replay attacks.
- </summary>
- <remarks>
- When communicating with an OP using OpenID 2.0, the provider takes
- care of the nonce, so we don't have to.
-
- If operating under stateless mode, nonces can't be used on the RP
- side, so we rely on the Provider to be using some nonce mechanism.
- In OpenID 2.0, this is guaranteed, but in 1.x it's just an
- assumption, which allows for replay attacks if the assumption is false.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.Token.persistSignature(DotNetOpenId.RelyingParty.INonceStore)">
- <summary>
- Whether to sign a token.
- </summary>
- <remarks>
- If an application store exists, we should sign the token. If it doesn't,
- we haven't any means to keep a secret, so we can't sign the token.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.Token.verifyEndpointByDiscovery(DotNetOpenId.RelyingParty.ServiceEndpoint)">
- <summary>
- Performs discovery on the information in the token to detect any tampering.
- </summary>
- <remarks>
- Manual re-discovery of a Claimed Identifier is the slow way to perform verification.
- The best way is to check a signature on a deserialized token. That is the primary method,
- but when stateless mode is used and no place exists to store a secret for signature
- verification, this is the only alternative.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.Token.Nonce">
- <summary>
- This nonce will only be used if the provider is pre-2.0.
- </summary>
- </member>
- <member name="M:DotNetOpenId.HmacShaAssociation.GetSecretLength(DotNetOpenId.Protocol,System.String)">
- <summary>
- Returns the length of the shared secret (in bytes).
- </summary>
- </member>
- <member name="M:DotNetOpenId.HmacShaAssociation.TryFindBestAssociation(DotNetOpenId.Protocol,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Boolean,System.String@,System.String@)">
- <summary>
- Looks for the longest hash length for a given protocol for which we have an association,
- and perhaps a matching Diffie-Hellman session type.
- </summary>
- <param name="protocol">The OpenID version that dictates which associations are available.</param>
- <param name="minimumHashSizeInBits">The minimum required hash length given security settings.</param>
- <param name="maximumHashSizeInBits">The maximum hash length to even attempt. Useful for the RP side where we support SHA512 but most OPs do not -- why waste time trying?</param>
- <param name="requireMatchingDHSessionType">True for HTTP associations, False for HTTPS associations.</param>
- <param name="associationType">The resulting association type's well known protocol name. (i.e. HMAC-SHA256)</param>
- <param name="sessionType">The resulting session type's well known protocol name, if a matching one is available. (i.e. DH-SHA256)</param>
- </member>
- <member name="P:DotNetOpenId.HmacShaAssociation.HmacSha.SecretLength">
- <summary>
- The size of the hash (in bytes).
- </summary>
- </member>
- <member name="T:DotNetOpenId.HttpEncoding">
- <summary>
- Conversion to and from the HTTP Encoding defined by
- OpenID Authentication 2.0 section 4.1.2.
- http://openid.net/specs/openid-authentication-2_0.html#anchor4
- </summary>
- </member>
- <member name="T:DotNetOpenId.AssociationRelyingPartyType">
- <summary>
- An enumeration that can specify how a given <see cref="T:DotNetOpenId.Association"/> is used.
- </summary>
- </member>
- <member name="F:DotNetOpenId.AssociationRelyingPartyType.Smart">
- <summary>
- The <see cref="T:DotNetOpenId.Association"/> manages a shared secret between
- Provider and Relying Party sites that allows the RP to verify
- the signature on a message from an OP.
- </summary>
- </member>
- <member name="F:DotNetOpenId.AssociationRelyingPartyType.Dumb">
- <summary>
- The <see cref="T:DotNetOpenId.Association"/> manages a secret known alone by
- a Provider that allows the Provider to verify its own signatures
- for "dumb" (stateless) relying parties.
- </summary>
- </member>
- <member name="T:DotNetOpenId.KeyValueFormConformanceLevel">
- <summary>
- Indicates the level of strictness to require when decoding a
- Key-Value Form encoded dictionary.
- </summary>
- </member>
- <member name="F:DotNetOpenId.KeyValueFormConformanceLevel.Loose">
- <summary>
- Be as forgiving as possible to errors made while encoding.
- </summary>
- </member>
- <member name="F:DotNetOpenId.KeyValueFormConformanceLevel.OpenId11">
- <summary>
- Allow for certain errors in encoding attributable to ambiguities
- in the OpenID 1.1 spec's description of the encoding.
- </summary>
- </member>
- <member name="F:DotNetOpenId.KeyValueFormConformanceLevel.OpenId20">
- <summary>
- The strictest mode. The decoder requires the encoded dictionary
- to be in strict compliance with OpenID 2.0's description of
- the encoding.
- </summary>
- </member>
- <member name="T:DotNetOpenId.KeyValueFormEncoding">
- <summary>
- Conversion to and from the Key-Value Form Encoding defined by
- OpenID Authentication 2.0 section 4.1.1.
- http://openid.net/specs/openid-authentication-2_0.html#anchor4
- </summary>
- </member>
- <member name="M:DotNetOpenId.KeyValueFormEncoding.GetBytes(System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Encodes key/value pairs to Key-Value Form.
- Do not use for dictionaries of signed fields! Instead use the overload
- that accepts a list of in-order keys.
- </summary>
- <returns>The UTF8 byte array.</returns>
- <remarks>
- Because dictionaries do not guarantee ordering,
- encoding a dictionary without an explicitly given key order
- is useless in OpenID scenarios where a signature must match.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.KeyValueFormEncoding.GetBytes(System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IList{System.String})">
- <summary>
- Encodes key/value pairs to Key-Value Form.
- </summary>
- <param name="dictionary">
- The dictionary of key/value pairs to convert to a byte stream.
- </param>
- <param name="keyOrder">
- The order in which to encode the key/value pairs.
- Useful in scenarios where a byte[] must be exactly reproduced.
- </param>
- <returns>The UTF8 byte array.</returns>
- </member>
- <member name="M:DotNetOpenId.KeyValueFormEncoding.GetDictionary(System.IO.Stream)">
- <summary>
- Decodes bytes in Key-Value Form to key/value pairs.
- </summary>
- <param name="data">The stream of Key-Value Form encoded bytes.</param>
- <returns>The deserialized dictionary.</returns>
- </member>
- <member name="T:DotNetOpenId.OpenIdException">
- <summary>
- A message did not conform to the OpenID protocol, or
- some other processing error occurred.
- </summary>
- </member>
- <member name="M:DotNetOpenId.OpenIdException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
- <summary>
- Instantiates an <see cref="T:DotNetOpenId.OpenIdException"/> based on deserialized data.
- </summary>
- <param name="info"></param>
- <param name="context"></param>
- </member>
- <member name="M:DotNetOpenId.OpenIdException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
- <summary>
- Serializes the exception details for binary transmission.
- </summary>
- </member>
- <member name="P:DotNetOpenId.OpenIdException.Identifier">
- <summary>
- An Identifier (claimed or local provider) that was being processed when
- the exception was thrown.
- </summary>
- </member>
- <member name="P:DotNetOpenId.OpenIdException.IsDirectMessage">
- <summary>
- Gets whether this exception was generated on an OP as the result of processing a message
- that came directly from the RP.
- </summary>
- <remarks>
- This is useful because it allows us to determine what kind of error reporting we'll send
- in the HTTP response.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.OpenIdException.EncodedFields">
- <summary>
- Fields that should be encoded for processing when this exception
- is thrown by a Provider and the details should be passed to the
- relying party.
- </summary>
- </member>
- <member name="P:DotNetOpenId.OpenIdException.RedirectUrl">
- <summary>
- The URL that the exception details should be forwarded to.
- This is used when a Provider throws an exception that a relying
- party may find helpful in diagnosing the failure.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.Request">
- <summary>
- Represents any OpenId-protocol request that may come to the provider.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.IRequest">
- <summary>
- Represents an incoming OpenId authentication request.
- </summary>
- <remarks>
- Requests may be infrastructural to OpenID and allow auto-responses, or they may
- be authentication requests where the Provider site has to make decisions based
- on its own user database and policies.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Provider.IRequest.AddResponseExtension(DotNetOpenId.Extensions.IExtensionResponse)">
- <summary>
- Adds an extension to the response to send to the relying party.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.IRequest.GetExtension``1">
- <summary>
- Gets an extension sent from the relying party.
- </summary>
- <typeparam name="T">The type of the extension.</typeparam>
- <returns>An instance of the extension initialized with values passed in with the request.</returns>
- </member>
- <member name="M:DotNetOpenId.Provider.IRequest.GetExtension(System.Type)">
- <summary>
- Gets an extension sent from the relying party.
- </summary>
- <param name="extensionType">The type of the extension.</param>
- <returns>An instance of the extension initialized with values passed in with the request.</returns>
- </member>
- <member name="P:DotNetOpenId.Provider.IRequest.IsResponseReady">
- <summary>
- Returns true if the Response is ready to be sent to the user agent.
- Returns false if there are properties that must be set on this
- request instance before the response can be sent.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IRequest.Response">
- <summary>
- Gets the response to send to the user agent.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Provider.Request.Protocol">
- <summary>
- The detected protocol of the calling OpenId relying party.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.Request.IsOpenIdRequest(System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Tests whether a given dictionary represents an incoming OpenId request.
- </summary>
- <param name="query">The name/value pairs in the querystring or Form submission. Cannot be null.</param>
- <returns>True if the request is an OpenId request, false otherwise.</returns>
- </member>
- <member name="M:DotNetOpenId.Provider.Request.CreateRequest(DotNetOpenId.Provider.OpenIdProvider)">
- <summary>
- Creates the appropriate Request-derived type based on the request dictionary.
- </summary>
- <param name="provider">The Provider instance that called this method.</param>
- <returns>A Request-derived type appropriate for this stage in authentication.</returns>
- </member>
- <member name="M:DotNetOpenId.Provider.Request.InvalidateResponse">
- <summary>
- Called whenever a property changes that would cause the response to need to be
- regenerated if it had already been generated.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.Request.getExtension(DotNetOpenId.Extensions.IExtensionRequest)">
- <summary>
- Attempts to load an extension from an OpenId message.
- </summary>
- <param name="extension">The extension to attempt to load.</param>
- <returns>
- True if the extension was found in the message and successfully loaded.
- False otherwise.
- </returns>
- </member>
- <member name="P:DotNetOpenId.Provider.Request.OutgoingExtensions">
- <summary>
- Extension arguments to pass to the Relying Party.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.Request.IncomingExtensions">
- <summary>
- Extension arguments received from the Relying Party.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.Request.RelyingPartyVersion">
- <summary>
- Gets the version of OpenID being used by the relying party that sent the request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.Request.IsResponseReady">
- <summary>
- Indicates whether this request has all the information necessary to formulate a response.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.Request.Response">
- <summary>
- The authentication response to be sent to the user agent or the calling
- OpenId consumer.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.IAuthenticationRequest">
- <summary>
- Instances of this interface represent incoming authentication requests.
- This interface provides the details of the request and allows setting
- the response.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.IAuthenticationRequest.SetClaimedIdentifierFragment(System.String)">
- <summary>
- Adds an optional fragment (#fragment) portion to the ClaimedIdentifier.
- Useful for identifier recycling.
- </summary>
- <param name="fragment">
- Should not include the # prefix character as that will be added internally.
- May be null or the empty string to clear a previously set fragment.
- </param>
- <remarks>
- <para>Unlike the <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.ClaimedIdentifier"/> property, which can only be set if
- using directed identity, this method can be called on any URI claimed identifier.</para>
- <para>Because XRI claimed identifiers (the canonical IDs) are never recycled,
- this method should<i>not</i> be called for XRIs.</para>
- </remarks>
- <exception cref="T:System.InvalidOperationException">Thrown when this method is called on an XRI.</exception>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.RelyingPartyVersion">
- <summary>
- Gets the version of OpenID being used by the relying party that sent the request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.Immediate">
- <summary>
- Whether the consumer demands an immediate response.
- If false, the consumer is willing to wait for the identity provider
- to authenticate the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.Realm">
- <summary>
- The URL the consumer site claims to use as its 'base' address.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.IsReturnUrlDiscoverable">
- <summary>
- Whether verification of the return URL claimed by the Relying Party
- succeeded.
- </summary>
- <remarks>
- Return URL verification is only attempted if this property is queried.
- The result of the verification is cached per request so calling this
- property getter multiple times in one request is not a performance hit.
- See OpenID Authentication 2.0 spec section 9.2.1.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.IsDirectedIdentity">
- <summary>
- Whether the Provider should help the user select a Claimed Identifier
- to send back to the relying party.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.LocalIdentifier">
- <summary>
- The Local Identifier to this OpenID Provider of the user attempting
- to authenticate. Check <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.IsDirectedIdentity"/> to see if
- this value is valid.
- </summary>
- <remarks>
- This may or may not be the same as the Claimed Identifier that the user agent
- originally supplied to the relying party. The Claimed Identifier
- endpoint may be delegating authentication to this provider using
- this provider's local id, which is what this property contains.
- Use this identifier when looking up this user in the provider's user account
- list.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.ClaimedIdentifier">
- <summary>
- The identifier that the user agent is claiming at the relying party site.
- Check <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.IsDirectedIdentity"/> to see if this value is valid.
- </summary>
- <remarks>
- This will not be the same as this provider's local identifier for the user
- if the user has set up his/her own identity page that points to this
- provider for authentication.
- The provider may use this identifier for displaying to the user when
- asking for the user's permission to authenticate to the relying party.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.IsAuthenticated">
- <summary>
- Gets/sets whether the provider has determined that the
- <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.ClaimedIdentifier"/> belongs to the currently logged in user
- and wishes to share this information with the consumer.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs">
- <summary>
- The event arguments passed to the <see cref="E:DotNetOpenId.Provider.IdentityEndpoint.NormalizeUri"/> event handler.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.UserSuppliedIdentifier">
- <summary>
- Gets or sets the portion of the incoming page request URI that is relevant to normalization.
- </summary>
- <remarks>
- This identifier should be used to look up the user whose identity page is being queried.
- It MAY be set in case some clever web server URL rewriting is taking place that ASP.NET
- does not know about but your site does. If this is the case this property should be set
- to whatever the original request URL was.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.NormalizedIdentifier">
- <summary>
- Gets/sets the normalized form of the user's identifier, according to the host site's policy.
- </summary>
- <remarks>
- <para>This should be set to some constant value for an individual user.
- For example, if <see cref="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.UserSuppliedIdentifier"/> indicates that identity page
- for "BOB" is being called up, then the following things should be considered:</para>
- <list>
- <item>Normalize the capitalization of the URL: for example, change http://provider/BOB to
- http://provider/bob.</item>
- <item>Switch to HTTPS is it is offered: change http://provider/bob to https://provider/bob.</item>
- <item>Strip off the query string if it is not part of the canonical identity:
- https://provider/bob?timeofday=now becomes https://provider/bob</item>
- <item>Ensure that any trailing slash is either present or absent consistently. For example,
- change https://provider/bob/ to https://provider/bob.</item>
- </list>
- <para>When this property is set, the <see cref="T:DotNetOpenId.Provider.IdentityEndpoint"/> control compares it to
- the request that actually came in, and redirects the browser to use the normalized identifier
- if necessary.</para>
- <para>Using the normalized identifier in the request is <i>very</i> important as it
- helps the user maintain a consistent identity across sites and across site visits to an individual site.
- For example, without normalizing the URL, Bob might sign into a relying party site as
- http://provider/bob one day and https://provider/bob the next day, and the relying party
- site <i>should</i> interpret Bob as two different people because the URLs are different.
- By normalizing the URL at the Provider's identity page for Bob, whichever URL Bob types in
- from day-to-day gets redirected to a normalized form, so Bob is seen as the same person
- all the time, which is of course what Bob wants.
- </para>
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Provider.IdentityEndpoint">
- <summary>
- An ASP.NET control that manages the OpenID identity advertising tags
- of a user's Identity Page that allow a relying party web site to discover
- how to authenticate a user.
- </summary>
- </member>
- <member name="T:DotNetOpenId.XrdsPublisher">
- <summary>
- An ASP.NET control that advertises an XRDS document and even responds to specially
- crafted requests to retrieve it.
- </summary>
- </member>
- <member name="M:DotNetOpenId.XrdsPublisher.OnLoad(System.EventArgs)">
- <summary>
- Detects YADIS requests for the XRDS document and responds immediately
- if <see cref="P:DotNetOpenId.XrdsPublisher.XrdsAutoAnswer"/> is true.
- </summary>
- </member>
- <member name="M:DotNetOpenId.XrdsPublisher.Render(System.Web.UI.HtmlTextWriter)">
- <summary>
- Renders the HTTP Header and/or HTML HEAD tags.
- </summary>
- <param name="writer"></param>
- </member>
- <member name="P:DotNetOpenId.XrdsPublisher.XrdsUrl">
- <summary>
- The location of the XRDS document.
- </summary>
- </member>
- <member name="P:DotNetOpenId.XrdsPublisher.XrdsAdvertisement">
- <summary>
- Where the XRDS document URL is advertised in the web response.
- </summary>
- </member>
- <member name="P:DotNetOpenId.XrdsPublisher.XrdsAutoAnswer">
- <summary>
- Gets/sets whether a specially crafted YADIS search for an XRDS document is
- immediately answered by this control.
- </summary>
- </member>
- <member name="P:DotNetOpenId.XrdsPublisher.Enabled">
- <summary>
- Sets/gets whether the XRDS document is advertised.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.IdentityEndpoint.OnNormalize">
- <summary>
- Checks the incoming request and invokes a browser redirect if the URL has not been normalized.
- </summary>
- <seealso cref="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.NormalizedIdentifier"/>
- </member>
- <member name="M:DotNetOpenId.Provider.IdentityEndpoint.bestGuessNormalization(System.Uri)">
- <summary>
- Normalizes the URL by making the path and query lowercase, and trimming trailing slashes.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.IdentityEndpoint.OnLoad(System.EventArgs)">
- <summary>
- Checks the incoming request and invokes a browser redirect if the URL has not been normalized.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.IdentityEndpoint.Render(System.Web.UI.HtmlTextWriter)">
- <summary>
- Renders OpenID identity tags.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IdentityEndpoint.ProviderVersion">
- <summary>
- The OpenID version supported by the provider.
- If multiple versions are supported, this should be set to the latest
- version that DotNetOpenId and the Provider both support.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IdentityEndpoint.ProviderEndpointUrl">
- <summary>
- The Provider URL that processes OpenID requests.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IdentityEndpoint.ProviderLocalIdentifier">
- <summary>
- The Identifier that is controlled by the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.IdentityEndpoint.AutoNormalizeRequest">
- <summary>
- Whether every incoming request will be checked for normalized form and redirected if it is not.
- </summary>
- <remarks>
- <para>If set to true (and it should be), you should also handle the <see cref="E:DotNetOpenId.Provider.IdentityEndpoint.NormalizeUri"/>
- event and apply your own policy for normalizing the URI.</para>
- If multiple <see cref="T:DotNetOpenId.Provider.IdentityEndpoint"/> controls are on a single page (to support
- multiple versions of OpenID for example) then only one of them should have this
- property set to true.
- </remarks>
- </member>
- <member name="E:DotNetOpenId.Provider.IdentityEndpoint.NormalizeUri">
- <summary>
- Fired at each page request so the host web site can return the normalized
- version of the request URI.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.OpenIdProvider">
- <summary>
- Offers services for a web page that is acting as an OpenID identity server.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Provider.OpenIdProvider.RequestUrl">
- <summary>
- The incoming request's Url.
- </summary>
- <remarks>
- This is used for certain security checks internally. It should not
- be used for its Query property, as it will be irrelevant on POST requests.
- Instead, use the OpenIdProvider.Query field.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.Provider.OpenIdProvider.Query">
- <summary>
- The query of the incoming request.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.OpenIdProvider.#ctor">
- <summary>
- Constructs an OpenId server that uses the HttpApplication dictionary as
- its association store and detects common settings.
- </summary>
- <remarks>
- This method requires a current ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Provider.OpenIdProvider.#ctor(DotNetOpenId.IAssociationStore{DotNetOpenId.AssociationRelyingPartyType},System.Uri,System.Uri,System.Collections.Specialized.NameValueCollection)">
- <summary>
- Constructs an OpenId server that uses a given query and IAssociationStore.
- </summary>
- <param name="store">
- The application-level store where associations with OpenId consumers will be preserved.
- </param>
- <param name="providerEndpoint">
- The Internet-facing URL that responds to OpenID requests.
- </param>
- <param name="requestUrl">The incoming request URL.</param>
- <param name="query">
- The name/value pairs that came in on the
- QueryString of a GET request or in the entity of a POST request.
- For example: (Request.HttpMethod == "GET" ? Request.QueryString : Request.Form).
- </param>
- </member>
- <member name="M:DotNetOpenId.Provider.OpenIdProvider.decodeRequest">
- <summary>
- Decodes an incoming web request in to a <see cref="P:DotNetOpenId.Provider.OpenIdProvider.Request"/>.
- </summary>
- <returns>A Request object, or null if the given query doesn't represent an OpenId request.</returns>
- </member>
- <member name="M:DotNetOpenId.Provider.OpenIdProvider.PrepareUnsolicitedAssertion(DotNetOpenId.Realm,DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
- <summary>
- Allows a Provider to send an identity assertion on behalf of one
- of its members in order to redirect the member to a relying party
- web site and log him/her in immediately in one uninterrupted step.
- </summary>
- <param name="relyingParty">
- The URL of the relying party web site.
- This will typically be the home page, but may be a longer URL if
- that Relying Party considers the scope of its realm to be more specific.
- The URL provided here must allow discovery of the Relying Party's
- XRDS document that advertises its OpenID RP endpoint.
- </param>
- <param name="claimedIdentifier">
- The Identifier you are asserting your member controls.
- </param>
- <param name="localIdentifier">
- The Identifier you know your user by internally. This will typically
- be the same as <paramref name="claimedIdentifier"/>.
- </param>
- <returns>
- An <see cref="T:DotNetOpenId.IResponse"/> object describing the HTTP response to send
- the user agent to allow the redirect with assertion to happen.
- </returns>
- </member>
- <member name="P:DotNetOpenId.Provider.OpenIdProvider.Protocol">
- <summary>
- The version of OpenId being used by the Relying Party
- sending the incoming request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.OpenIdProvider.Endpoint">
- <summary>
- The provider URL that responds to OpenID requests.
- </summary>
- <remarks>
- An auto-detect attempt is made if an ASP.NET HttpContext is available.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.OpenIdProvider.Settings">
- <summary>
- Provides access to the adjustable security settings of this instance
- of <see cref="T:DotNetOpenId.Provider.OpenIdProvider"/>.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.OpenIdProvider.Request">
- <summary>
- Gets the incoming OpenID request if there is one, or null if none was detected.
- </summary>
- <remarks>
- Requests may be infrastructural to OpenID and allow auto-responses, or they may
- be authentication requests where the Provider site has to make decisions based
- on its own user database and policies.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.OpenIdProvider.HttpApplicationStore">
- <summary>
- The standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary
- to store associations.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.OpenIdProvider.Configuration">
- <summary>
- Gets the relevant Configuration section for this OpenIdRelyingParty.
- </summary>
- <remarks>
- This is not a static member because depending on the context within which we are
- invoked, the configuration section might be different. (location tag, for example).
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Provider.PlainTextProviderSession">
- <summary>
- An object that knows how to handle association requests with no session type.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.DiffieHellmanProviderSession">
- <summary>
- An object that knows how to handle association requests with the Diffie-Hellman session type.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Response">
- <summary>
- A response to an OpenID request in terms the host web site can forward to the user agent.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Response.#ctor(System.Net.HttpStatusCode,System.Net.WebHeaderCollection,System.Byte[],DotNetOpenId.IEncodable)">
- <param name="code">The HTTP status code.</param>
- <param name="headers">The collection of any HTTP headers that should be included. Cannot be null, but can be an empty collection.</param>
- <param name="body">The payload of the response, if any. Cannot be null, but can be an empty array.</param>
- <param name="encodableMessage">
- Used to assist testing to decipher the field contents of a Response.
- </param>
- </member>
- <member name="M:DotNetOpenId.Response.Send">
- <summary>
- Sends this response to the user agent or OpenId consumer.
- Execution of the current page terminates after this call.
- </summary>
- <remarks>
- This method requires a current ASP.NET HttpContext.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Provider.ProviderEndpoint">
- <summary>
- An OpenID Provider control that automatically responds to certain
- automated OpenID messages, and routes authentication requests to
- custom code via an event handler.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.ProviderEndpoint.OnLoad(System.EventArgs)">
- <summary>
- Checks for incoming OpenID requests, responds to ones it can
- respond to without policy checks, and fires events for custom
- handling of the ones it cannot decide on automatically.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.ProviderEndpoint.OnAuthenticationChallenge(DotNetOpenId.Provider.IAuthenticationRequest)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.Provider.ProviderEndpoint.AuthenticationChallenge"/> event.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.ProviderEndpoint.PendingAuthenticationRequest">
- <summary>
- An incoming OpenID authentication request that has not yet been responded to.
- </summary>
- <remarks>
- This request is stored in the ASP.NET Session state, so it will survive across
- redirects, postbacks, and transfers. This allows you to authenticate the user
- yourself, and confirm his/her desire to authenticate to the relying party site
- before responding to the relying party's authentication request.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.ProviderEndpoint.Enabled">
- <summary>
- Whether or not this control should be listening for and responding
- to incoming OpenID requests.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.ProviderEndpoint.CustomApplicationStore">
- <summary>
- A custom application store to use. Null to use the default.
- </summary>
- <remarks>
- If set, this property must be set in each Page Load event
- as it is not persisted across postbacks.
- </remarks>
- </member>
- <member name="E:DotNetOpenId.Provider.ProviderEndpoint.AuthenticationChallenge">
- <summary>
- Fired when an incoming OpenID request is an authentication challenge
- that must be responded to by the Provider web site according to its
- own user database and policies.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.AuthenticationChallengeEventArgs">
- <summary>
- The event arguments that include details of the incoming request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.AuthenticationChallengeEventArgs.Request">
- <summary>
- The incoming authentication request.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.SimpleRegistration.Gender">
- <summary>
- Indicates the gender of a user.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.SimpleRegistration.Gender.Male">
- <summary>
- The user is male.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.SimpleRegistration.Gender.Female">
- <summary>
- The user is female.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse">
- <summary>
- A struct storing Simple Registration field values describing an
- authenticating user.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.#ctor">
- <summary>
- Creates an instance of the <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> class.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.DotNetOpenId#Extensions#IExtensionResponse#Serialize(DotNetOpenId.Provider.IRequest)">
- <summary>
- Adds the values of this struct to an authentication response being prepared
- by an OpenID Provider.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.op_Equality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse,DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse)">
- <summary>
- Tests equality of two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> objects.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.op_Inequality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse,DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse)">
- <summary>
- Tests inequality of two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> objects.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Equals(System.Object)">
- <summary>
- Tests equality of two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> objects.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Nickname">
- <summary>
- The nickname the user goes by.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Email">
- <summary>
- The user's email address.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.MailAddress">
- <summary>
- A combination of the user's full name and email address.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.FullName">
- <summary>
- The full name of a user as a single string.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.BirthDate">
- <summary>
- The user's birthdate.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Gender">
- <summary>
- The gender of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.PostalCode">
- <summary>
- The zip code / postal code of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Country">
- <summary>
- The country of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Language">
- <summary>
- The primary/preferred language of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Culture">
- <summary>
- A combination o the language and country of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.TimeZone">
- <summary>
- The user's timezone.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest">
- <summary>
- Carries the request/require/none demand state of the simple registration fields.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.SetProfileRequestFromList(System.Collections.Generic.ICollection{System.String},DotNetOpenId.Extensions.SimpleRegistration.DemandLevel)">
- <summary>
- Sets the profile request properties according to a list of
- field names that might have been passed in the OpenId query dictionary.
- </summary>
- <param name="fieldNames">
- The list of field names that should receive a given
- <paramref name="requestLevel"/>. These field names should match
- the OpenId specification for field names, omitting the 'openid.sreg' prefix.
- </param>
- <param name="requestLevel">The none/request/require state of the listed fields.</param>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.DotNetOpenId#Extensions#IExtensionRequest#Serialize(DotNetOpenId.RelyingParty.IAuthenticationRequest)">
- <summary>
- Adds a description of the information the relying party site would like
- the Provider to include with a positive authentication assertion as an
- extension to an authentication request.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.CreateResponse">
- <summary>
- Prepares a Simple Registration response extension that is compatible with the
- version of Simple Registration used in the request message.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.ToString">
- <summary>
- Renders the requested information as a string.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.op_Equality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest,DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest)">
- <summary>
- Tests equality between two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest"/> structs.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.op_Inequality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest,DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest)">
- <summary>
- Tests inequality between two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest"/> structs.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Equals(System.Object)">
- <summary>
- Tests equality between two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest"/> structs.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Nickname">
- <summary>
- The level of interest a relying party has in the nickname of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Email">
- <summary>
- The level of interest a relying party has in the email of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.FullName">
- <summary>
- The level of interest a relying party has in the full name of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.BirthDate">
- <summary>
- The level of interest a relying party has in the birthdate of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Gender">
- <summary>
- The level of interest a relying party has in the gender of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.PostalCode">
- <summary>
- The level of interest a relying party has in the postal code of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Country">
- <summary>
- The level of interest a relying party has in the Country of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Language">
- <summary>
- The level of interest a relying party has in the language of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.TimeZone">
- <summary>
- The level of interest a relying party has in the time zone of the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.PolicyUrl">
- <summary>
- The URL the consumer site provides for the authenticating user to review
- for how his claims will be used by the consumer web site.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.OpenIdLogin">
- <summary>
- An ASP.NET control providing a complete OpenID login experience.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.OpenIdTextBox">
- <summary>
- An ASP.NET control that provides a minimal text box that is OpenID-aware.
- </summary>
- <remarks>
- This control offers greater UI flexibility than the <see cref="T:DotNetOpenId.RelyingParty.OpenIdLogin"/>
- control, but requires more work to be done by the hosting web site to
- assemble a complete login experience.
- </remarks>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.UsePersistentCookieDefault">
- <summary>
- Default value of <see cref="P:DotNetOpenId.RelyingParty.OpenIdTextBox.UsePersistentCookie"/>.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.TabIndexDefault">
- <summary>
- Default value for <see cref="P:DotNetOpenId.RelyingParty.OpenIdTextBox.TabIndex"/> property.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.#ctor">
- <summary>
- Instantiates an <see cref="T:DotNetOpenId.RelyingParty.OpenIdTextBox"/> instance.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.CreateChildControls">
- <summary>
- Creates the text box control.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.InitializeControls">
- <summary>
- Initializes the text box control.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.ShouldBeFocused">
- <summary>
- Whether the text box should receive input focus when the web page appears.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.Focus">
- <summary>
- Sets the input focus to start on the text box when the page appears
- in the user's browser.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnLoad(System.EventArgs)">
- <summary>
- Checks for incoming OpenID authentication responses and fires appropriate events.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnPreRender(System.EventArgs)">
- <summary>
- Prepares the text box to be rendered.
- </summary>
- </member>
- <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.Request">
- <summary>
- The OpenID authentication request that is about to be sent.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.CreateRequest">
- <summary>
- Constructs the authentication request and returns it.
- </summary>
- <remarks>
- <para>This method need not be called before calling the <see cref="M:DotNetOpenId.RelyingParty.OpenIdTextBox.LogOn"/> method,
- but is offered in the event that adding extensions to the request is desired.</para>
- <para>The Simple Registration extension arguments are added to the request
- before returning if <see cref="P:DotNetOpenId.RelyingParty.OpenIdTextBox.EnableRequestProfile"/> is set to true.</para>
- </remarks>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.LogOn">
- <summary>
- Immediately redirects to the OpenID Provider to verify the Identifier
- provided in the text box.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnLoggedIn(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.LoggedIn"/> event.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnFailed(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Failed"/> event.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnCanceled(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Canceled"/> event.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnSetupRequired(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.SetupRequired"/> event.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.WrappedTextBox">
- <summary>
- Gets the <see cref="T:System.Web.UI.WebControls.TextBox"/> control that this control wraps.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Text">
- <summary>
- The content of the text box.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RealmUrl">
- <summary>
- The OpenID <see cref="T:DotNetOpenId.Realm"/> of the relying party web site.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ImmediateMode">
- <summary>
- True if a Provider should reply immediately to the authentication request
- without interacting with the user. False if the Provider can take time
- to authenticate the user in order to complete an authentication attempt.
- </summary>
- <remarks>
- Setting this to true is sometimes useful in AJAX scenarios. Setting this to
- true can cause failed authentications when the user truly controls an
- Identifier, but must complete an authentication step with the Provider before
- the Provider will approve the login from this relying party.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Stateless">
- <summary>
- Controls whether stateless mode is used.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.CssClass">
- <summary>
- Gets/sets the CSS class assigned to the text box.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ShowLogo">
- <summary>
- Gets/sets whether to show the OpenID logo in the text box.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.UsePersistentCookie">
- <summary>
- Whether to send a persistent cookie upon successful
- login so the user does not have to log in upon returning to this site.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Columns">
- <summary>
- The width of the text box in characters.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.TabIndex">
- <summary>
- The tab index of the text box control.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestNickname">
- <summary>
- Gets/sets your level of interest in receiving the user's nickname from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestEmail">
- <summary>
- Gets/sets your level of interest in receiving the user's email address from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestFullName">
- <summary>
- Gets/sets your level of interest in receiving the user's full name from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestBirthDate">
- <summary>
- Gets/sets your level of interest in receiving the user's birthdate from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestGender">
- <summary>
- Gets/sets your level of interest in receiving the user's gender from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestPostalCode">
- <summary>
- Gets/sets your level of interest in receiving the user's postal code from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestCountry">
- <summary>
- Gets/sets your level of interest in receiving the user's country from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestLanguage">
- <summary>
- Gets/sets your level of interest in receiving the user's preferred language from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestTimeZone">
- <summary>
- Gets/sets your level of interest in receiving the user's time zone from the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.PolicyUrl">
- <summary>
- Gets/sets the URL to your privacy policy page that describes how
- claims will be used and/or shared.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.EnableRequestProfile">
- <summary>
- Turns the entire Simple Registration extension on or off.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequireSsl">
- <summary>
- Turns on high security mode, requiring the full authentication pipeline to be protected by SSL.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.CustomApplicationStore">
- <summary>
- A custom application store to use, or null to use the default.
- </summary>
- <remarks>
- If set, this property must be set in each Page Load event
- as it is not persisted across postbacks.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ForeColor">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BackColor">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BorderColor">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BorderWidth">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BorderStyle">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Font">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Height">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Width">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ToolTip">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.SkinID">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.EnableTheming">
- <summary>
- Unused property.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.LoggedIn">
- <summary>
- Fired upon completion of a successful login.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Failed">
- <summary>
- Fired when a login attempt fails.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Canceled">
- <summary>
- Fired when an authentication attempt is canceled at the OpenID Provider.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.SetupRequired">
- <summary>
- Fired when an Immediate authentication attempt fails, and the Provider suggests using non-Immediate mode.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.TextChanged">
- <summary>
- Occurs when the content of the text box changes between posts to the server.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.CreateChildControls">
- <summary>
- Creates the child controls.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.InitializeControls">
- <summary>
- Initializes the child controls.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.Render(System.Web.UI.HtmlTextWriter)">
- <summary>
- Customizes HTML rendering of the control.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.RenderChildren(System.Web.UI.HtmlTextWriter)">
- <summary>
- Renders the child controls.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.OnLoggingIn">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdLogin.LoggingIn"/> event.
- </summary>
- <returns>
- Returns whether the login should proceed. False if some event handler canceled the request.
- </returns>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.OnRememberMeChanged">
- <summary>
- Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeChanged"/> event.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.LabelText">
- <summary>
- The caption that appears before the text box.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ExamplePrefix">
- <summary>
- The text that introduces the example OpenID url.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ExampleUrl">
- <summary>
- The example OpenID Identifier to display to the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RequiredText">
- <summary>
- The text to display if the user attempts to login without providing an Identifier.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.UriFormatText">
- <summary>
- The text to display if the user provides an invalid form for an Identifier.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.UriValidatorEnabled">
- <summary>
- Whether to perform Identifier format validation prior to an authentication attempt.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterText">
- <summary>
- The text of the link users can click on to obtain an OpenID.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterUrl">
- <summary>
- The URL to link users to who click the link to obtain a new OpenID.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterToolTip">
- <summary>
- The text of the tooltip to display when the user hovers over the link to obtain a new OpenID.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterVisible">
- <summary>
- Whether to display a link to allow users to easily obtain a new OpenID.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ButtonText">
- <summary>
- The text that appears on the button that initiates login.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeText">
- <summary>
- The text of the "Remember Me" checkbox.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeVisible">
- <summary>
- Whether the "Remember Me" checkbox should be displayed.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMe">
- <summary>
- Whether a successful authentication should result in a persistent
- cookie being saved to the browser.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.TabIndex">
- <summary>
- The starting tab index to distribute across the controls.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ButtonToolTip">
- <summary>
- The tooltip to display when the user hovers over the login button.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ValidationGroup">
- <summary>
- The validation group that the login button and text box validator belong to.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.IdSelectorIdentifier">
- <summary>
- The unique hash string that ends your idselector.com account.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.UsePersistentCookie">
- <summary>
- Whether a FormsAuthentication cookie should persist across user sessions.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdLogin.LoggingIn">
- <summary>
- Fired after the user clicks the log in button, but before the authentication
- process begins. Offers a chance for the web application to disallow based on
- OpenID URL before redirecting the user to the OpenID Provider.
- </summary>
- </member>
- <member name="E:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeChanged">
- <summary>
- Fired when the Remember Me checkbox is changed by the user.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.OpenIdEventArgs">
- <summary>
- The event details passed to event handlers.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdEventArgs.#ctor(DotNetOpenId.RelyingParty.IAuthenticationRequest)">
- <summary>
- Constructs an object with minimal information of an incomplete or failed
- authentication attempt.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.OpenIdEventArgs.#ctor(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
- <summary>
- Constructs an object with information on a completed authentication attempt
- (whether that attempt was successful or not).
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.Cancel">
- <summary>
- Cancels the OpenID authentication and/or login process.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.ClaimedIdentifier">
- <summary>
- The Identifier the user is claiming to own. Or null if the user
- is using Directed Identity.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.IsDirectedIdentity">
- <summary>
- Whether the user has selected to let his Provider determine
- the ClaimedIdentifier to use as part of successful authentication.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.Request">
- <summary>
- Gets the details of the OpenID authentication request,
- and allows for adding extensions.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.Response">
- <summary>
- Gets the details of the OpenID authentication response.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel">
- <summary>
- Specifies what level of interest a relying party has in obtaining the value
- of a given field offered by the Simple Registration extension.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel.NoRequest">
- <summary>
- The relying party has no interest in obtaining this field.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel.Request">
- <summary>
- The relying party would like the value of this field, but wants
- the Provider to display the field to the user as optionally provided.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel.Require">
- <summary>
- The relying party considers this a required field as part of
- authentication. The Provider and/or user agent MAY still choose to
- not provide the value of the field however, according to the
- Simple Registration extension specification.
- </summary>
- </member>
- <member name="T:DotNetOpenId.RelyingParty.ServiceEndpoint">
- <summary>
- Represents information discovered about a user-supplied Identifier.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.ServiceEndpoint.#ctor(DotNetOpenId.Identifier,DotNetOpenId.Identifier,System.Uri,DotNetOpenId.Identifier,DotNetOpenId.Protocol)">
- <summary>
- Used for deserializing <see cref="T:DotNetOpenId.RelyingParty.ServiceEndpoint"/> from authentication responses.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.ServiceEndpoint.Serialize(System.IO.TextWriter)">
- <summary>
- Saves the discovered information about this endpoint
- for later comparison to validate assertions.
- </summary>
- </member>
- <member name="M:DotNetOpenId.RelyingParty.ServiceEndpoint.Deserialize(System.IO.TextReader)">
- <summary>
- Reads previously discovered information about an endpoint
- from a solicited authentication assertion for validation.
- </summary>
- <returns>
- A <see cref="T:DotNetOpenId.RelyingParty.ServiceEndpoint"/> object that has everything
- except the <see cref="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderSupportedServiceTypeUris"/>
- deserialized.
- </returns>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderEndpoint">
- <summary>
- The URL which accepts OpenID Authentication protocol messages.
- </summary>
- <remarks>
- Obtained by performing discovery on the User-Supplied Identifier.
- This value MUST be an absolute HTTP or HTTPS URL.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.IsSecure">
- <summary>
- Returns true if the <see cref="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderEndpoint"/> is using an encrypted channel.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.UserSuppliedIdentifier">
- <summary>
- An Identifier that was presented by the end user to the Relying Party,
- or selected by the user at the OpenID Provider.
- During the initiation phase of the protocol, an end user may enter
- either their own Identifier or an OP Identifier. If an OP Identifier
- is used, the OP may then assist the end user in selecting an Identifier
- to share with the Relying Party.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ClaimedIdentifier">
- <summary>
- The Identifier that the end user claims to own.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderLocalIdentifier">
- <summary>
- An alternate Identifier for an end user that is local to a
- particular OP and thus not necessarily under the end user's
- control.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.FriendlyIdentifierForDisplay">
- <summary>
- Supports the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay"/> property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderSupportedServiceTypeUris">
- <summary>
- Gets the list of services available at this OP Endpoint for the
- claimed Identifier. May be null.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.Protocol">
- <summary>
- Gets the OpenID protocol used by the Provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.DotNetOpenId#RelyingParty#IXrdsProviderEndpoint#ServicePriority">
- <summary>
- Gets the priority associated with this service that may have been given
- in the XRDS document.
- </summary>
- </member>
- <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.DotNetOpenId#RelyingParty#IXrdsProviderEndpoint#UriPriority">
- <summary>
- Gets the priority associated with the service endpoint URL.
- </summary>
- </member>
- <member name="T:Org.Mentalis.Security.Cryptography.DHKeyGeneration">
- <summary>
- Defines the different Diffie-Hellman key generation methods.
- </summary>
- </member>
- <member name="F:Org.Mentalis.Security.Cryptography.DHKeyGeneration.Random">
- <summary>
- Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods,
- this method does not ensure that the selected prime offers an adequate security level.
- </summary>
- </member>
- <member name="F:Org.Mentalis.Security.Cryptography.DHKeyGeneration.Static">
- <summary>
- Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you,
- using these hard coded values is perfectly safe.
- The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412].
- This is the prefered key generation method, because it is very fast and very safe.
- Because this method uses fixed values for the P and G parameters, not all bit sizes are supported.
- The current implementation supports bit sizes of 768, 1024 and 1536.
- </summary>
- </member>
- <member name="T:Org.Mentalis.Security.Cryptography.DHParameters">
- <summary>
- Represents the parameters of the Diffie-Hellman algorithm.
- </summary>
- </member>
- <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.P">
- <summary>
- Represents the public <b>P</b> parameter of the Diffie-Hellman algorithm.
- </summary>
- </member>
- <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.G">
- <summary>
- Represents the public <b>G</b> parameter of the Diffie-Hellman algorithm.
- </summary>
- </member>
- <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.X">
- <summary>
- Represents the private <b>X</b> parameter of the Diffie-Hellman algorithm.
- </summary>
- </member>
- <member name="T:Org.Mentalis.Security.Cryptography.DiffieHellman">
- <summary>
- Defines a base class from which all Diffie-Hellman implementations inherit.
- </summary>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.Create">
- <summary>
- Creates an instance of the default implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> algorithm.
- </summary>
- <returns>A new instance of the default implementation of DiffieHellman.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.Create(System.String)">
- <summary>
- Creates an instance of the specified implementation of <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.
- </summary>
- <param name="algName">The name of the implementation of DiffieHellman to use.</param>
- <returns>A new instance of the specified implementation of DiffieHellman.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.#ctor">
- <summary>
- Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> instance.
- </summary>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.CreateKeyExchange">
- <summary>
- When overridden in a derived class, creates the key exchange data.
- </summary>
- <returns>The key exchange data to be sent to the intended recipient.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.DecryptKeyExchange(System.Byte[])">
- <summary>
- When overridden in a derived class, extracts secret information from the key exchange data.
- </summary>
- <param name="keyEx">The key exchange data within which the secret information is hidden.</param>
- <returns>The secret information derived from the key exchange data.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ExportParameters(System.Boolean)">
- <summary>
- When overridden in a derived class, exports the <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
- </summary>
- <param name="includePrivate"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
- <returns>The parameters for Diffie-Hellman.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ImportParameters(Org.Mentalis.Security.Cryptography.DHParameters)">
- <summary>
- When overridden in a derived class, imports the specified <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
- </summary>
- <param name="parameters">The parameters for Diffie-Hellman.</param>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.FromXmlString(System.String)">
- <summary>
- Reconstructs a <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> object from an XML string.
- </summary>
- <param name="xmlString">The XML string to use to reconstruct the DiffieHellman object.</param>
- <exception cref="T:System.Security.Cryptography.CryptographicException">One of the values in the XML string is invalid.</exception>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ToXmlString(System.Boolean)">
- <summary>
- Creates and returns an XML string representation of the current <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> object.
- </summary>
- <param name="includePrivateParameters"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
- <returns>An XML string encoding of the current DiffieHellman object.</returns>
- </member>
- <member name="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged">
- <summary>
- Implements the Diffie-Hellman algorithm.
- </summary>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor">
- <summary>
- Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
- </summary>
- <remarks>The default length of the shared secret is 1024 bits.</remarks>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Int32,System.Int32,Org.Mentalis.Security.Cryptography.DHKeyGeneration)">
- <summary>
- Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
- </summary>
- <param name="bitlen">The length, in bits, of the public P parameter.</param>
- <param name="l">The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size.</param>
- <param name="keygen">One of the <see cref="T:Org.Mentalis.Security.Cryptography.DHKeyGeneration"/> values.</param>
- <remarks>The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.<br/>The size of the private value will be one fourth of the bit length specified.</remarks>
- <exception cref="T:System.ArgumentException">The specified bit length is invalid.</exception>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Byte[],System.Byte[],System.Byte[])">
- <summary>
- Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
- </summary>
- <param name="p">The P parameter of the Diffie-Hellman algorithm. This is a public parameter.</param>
- <param name="g">The G parameter of the Diffie-Hellman algorithm. This is a public parameter.</param>
- <param name="x">The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (<b>Nothing</b> in Visual Basic), a secret value of the default size will be generated.</param>
- <exception cref="T:System.ArgumentNullException"><paramref name="p"/> or <paramref name="g"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
- <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="p"/> or <paramref name="g"/> is invalid.</exception>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Byte[],System.Byte[],System.Int32)">
- <summary>
- Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
- </summary>
- <param name="p">The P parameter of the Diffie-Hellman algorithm.</param>
- <param name="g">The G parameter of the Diffie-Hellman algorithm.</param>
- <param name="l">The length, in bits, of the private value. If 0 is specified, the default value will be used.</param>
- <exception cref="T:System.ArgumentNullException"><paramref name="p"/> or <paramref name="g"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
- <exception cref="T:System.ArgumentException"><paramref name="l"/> is invalid.</exception>
- <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="p"/> or <paramref name="g"/> is invalid.</exception>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.CreateKeyExchange">
- <summary>
- Creates the key exchange data.
- </summary>
- <returns>The key exchange data to be sent to the intended recipient.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.DecryptKeyExchange(System.Byte[])">
- <summary>
- Extracts secret information from the key exchange data.
- </summary>
- <param name="keyEx">The key exchange data within which the shared key is hidden.</param>
- <returns>The shared key derived from the key exchange data.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.Dispose(System.Boolean)">
- <summary>
- Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.
- </summary>
- <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.ExportParameters(System.Boolean)">
- <summary>
- Exports the <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
- </summary>
- <param name="includePrivateParameters"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
- <returns>The parameters for <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.</returns>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.ImportParameters(Org.Mentalis.Security.Cryptography.DHParameters)">
- <summary>
- Imports the specified <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
- </summary>
- <param name="parameters">The parameters for <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.</param>
- <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="P"/> or <paramref name="G"/> is a null reference (<b>Nothing</b> in Visual Basic) -or- <paramref name="P"/> is not a prime number.</exception>
- </member>
- <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.Finalize">
- <summary>
- Releases the unmanaged resources used by the SymmetricAlgorithm.
- </summary>
- </member>
- <member name="P:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.KeyExchangeAlgorithm">
- <summary>
- Gets the name of the key exchange algorithm.
- </summary>
- <value>The name of the key exchange algorithm.</value>
- </member>
- <member name="P:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.SignatureAlgorithm">
- <summary>
- Gets the name of the signature algorithm.
- </summary>
- <value>The name of the signature algorithm.</value>
- </member>
- <member name="F:Mono.Math.BigInteger.DEFAULT_LEN">
- <summary>
- Default length of a BigInteger in bytes
- </summary>
- </member>
- <member name="F:Mono.Math.BigInteger.length">
- <summary>
- The Length of this BigInteger
- </summary>
- </member>
- <member name="F:Mono.Math.BigInteger.data">
- <summary>
- The data for this BigInteger
- </summary>
- </member>
- <member name="F:Mono.Math.BigInteger.smallPrimes">
- <summary>
- Table of primes below 2000.
- </summary>
- <remarks>
- <para>
- This table was generated using Mathematica 4.1 using the following function:
- </para>
- <para>
- <code>
- PrimeTable [x_] := Prime [Range [1, PrimePi [x]]]
- PrimeTable [6000]
- </code>
- </para>
- </remarks>
- </member>
- <member name="M:Mono.Math.BigInteger.genRandom(System.Int32,System.Security.Cryptography.RandomNumberGenerator)">
- <summary>
- Generates a new, random BigInteger of the specified length.
- </summary>
- <param name="bits">The number of bits for the new number.</param>
- <param name="rng">A random number generator to use to obtain the bits.</param>
- <returns>A random number of the specified length.</returns>
- </member>
- <member name="M:Mono.Math.BigInteger.genRandom(System.Int32)">
- <summary>
- Generates a new, random BigInteger of the specified length using the default RNG crypto service provider.
- </summary>
- <param name="bits">The number of bits for the new number.</param>
- <returns>A random number of the specified length.</returns>
- </member>
- <member name="M:Mono.Math.BigInteger.randomize(System.Security.Cryptography.RandomNumberGenerator)">
- <summary>
- Randomizes the bits in "this" from the specified RNG.
- </summary>
- <param name="rng">A RNG.</param>
- </member>
- <member name="M:Mono.Math.BigInteger.randomize">
- <summary>
- Randomizes the bits in "this" from the default RNG.
- </summary>
- </member>
- <member name="M:Mono.Math.BigInteger.testBit(System.UInt32)">
- <summary>
- Tests if the specified bit is 1.
- </summary>
- <param name="bitNum">The bit to test. The least significant bit is 0.</param>
- <returns>True if bitNum is set to 1, else false.</returns>
- </member>
- <member name="M:Mono.Math.BigInteger.Normalize">
- <summary>
- Normalizes this by setting the length to the actual number of
- uints used in data and by setting the sign to Sign.Zero if the
- value of this is 0.
- </summary>
- </member>
- <member name="M:Mono.Math.BigInteger.NextHightestPrime(Mono.Math.BigInteger)">
- <summary>
- Generates the smallest prime >= bi
- </summary>
- <param name="bi">A BigInteger</param>
- <returns>The smallest prime >= bi. More mathematically, if bi is prime: bi, else Prime [PrimePi [bi] + 1].</returns>
- </member>
- <member name="M:Mono.Math.BigInteger.Incr2">
- <summary>
- Increments this by two
- </summary>
- </member>
- <member name="T:Mono.Math.BigInteger.Kernel">
- <summary>
- Low level functions for the BigInteger
- </summary>
- </member>
- <member name="M:Mono.Math.BigInteger.Kernel.AddSameSign(Mono.Math.BigInteger,Mono.Math.BigInteger)">
- <summary>
- Adds two numbers with the same sign.
- </summary>
- <param name="bi1">A BigInteger</param>
- <param name="bi2">A BigInteger</param>
- <returns>bi1 + bi2</returns>
- </member>
- <member name="M:Mono.Math.BigInteger.Kernel.Compare(Mono.Math.BigInteger,Mono.Math.BigInteger)">
- <summary>
- Compares two BigInteger
- </summary>
- <param name="bi1">A BigInteger</param>
- <param name="bi2">A BigInteger</param>
- <returns>The sign of bi1 - bi2</returns>
- </member>
- <member name="M:Mono.Math.BigInteger.Kernel.SingleByteDivideInPlace(Mono.Math.BigInteger,System.UInt32)">
- <summary>
- Performs n / d and n % d in one operation.
- </summary>
- <param name="n">A BigInteger, upon exit this will hold n / d</param>
- <param name="d">The divisor</param>
- <returns>n % d</returns>
- </member>
- <member name="M:Mono.Math.BigInteger.Kernel.Multiply(System.UInt32[],System.UInt32,System.UInt32,System.UInt32[],System.UInt32,System.UInt32,System.UInt32[],System.UInt32)">
- <summary>
- Multiplies the data in x [xOffset:xOffset+xLen] by
- y [yOffset:yOffset+yLen] and puts it into
- d [dOffset:dOffset+xLen+yLen].
- </summary>
- </member>
- <member name="M:Mono.Math.BigInteger.Kernel.MultiplyMod2p32pmod(System.UInt32[],System.Int32,System.Int32,System.UInt32[],System.Int32,System.Int32,System.UInt32[],System.Int32,System.Int32)">
- <summary>
- Multiplies the data in x [xOffset:xOffset+xLen] by
- y [yOffset:yOffset+yLen] and puts the low mod words into
- d [dOffset:dOffset+mod].
- </summary>
- </member>
- <member name="T:Mono.Math.Prime.ConfidenceFactor">
- <summary>
- A factor of confidence.
- </summary>
- </member>
- <member name="F:Mono.Math.Prime.ConfidenceFactor.ExtraLow">
- <summary>
- Only suitable for development use, probability of failure may be greater than 1/2^20.
- </summary>
- </member>
- <member name="F:Mono.Math.Prime.ConfidenceFactor.Low">
- <summary>
- Suitable only for transactions which do not require forward secrecy. Probability of failure about 1/2^40
- </summary>
- </member>
- <member name="F:Mono.Math.Prime.ConfidenceFactor.Medium">
- <summary>
- Designed for production use. Probability of failure about 1/2^80.
- </summary>
- </member>
- <member name="F:Mono.Math.Prime.ConfidenceFactor.High">
- <summary>
- Suitable for sensitive data. Probability of failure about 1/2^160.
- </summary>
- </member>
- <member name="F:Mono.Math.Prime.ConfidenceFactor.ExtraHigh">
- <summary>
- Use only if you have lots of time! Probability of failure about 1/2^320.
- </summary>
- </member>
- <member name="F:Mono.Math.Prime.ConfidenceFactor.Provable">
- <summary>
- Only use methods which generate provable primes. Not yet implemented.
- </summary>
- </member>
- <member name="T:Mono.Math.Prime.Generator.NextPrimeFinder">
- <summary>
- Finds the next prime after a given number.
- </summary>
- </member>
- <member name="M:Mono.Math.Prime.Generator.PrimeGeneratorBase.PostTrialDivisionTests(Mono.Math.BigInteger)">
- <summary>
- Performs primality tests on bi, assumes trial division has been done.
- </summary>
- <param name="bi">A BigInteger that has been subjected to and passed trial division</param>
- <returns>False if bi is composite, true if it may be prime.</returns>
- <remarks>The speed of this method is dependent on Confidence</remarks>
- </member>
- <member name="M:Mono.Math.Prime.PrimalityTests.RabinMillerTest(Mono.Math.BigInteger,Mono.Math.Prime.ConfidenceFactor)">
- <summary>
- Probabilistic prime test based on Rabin-Miller's test
- </summary>
- <param name="bi" type="BigInteger.BigInteger">
- <para>
- The number to test.
- </para>
- </param>
- <param name="confidence" type="int">
- <para>
- The number of chosen bases. The test has at least a
- 1/4^confidence chance of falsely returning True.
- </para>
- </param>
- <returns>
- <para>
- True if "this" is a strong pseudoprime to randomly chosen bases.
- </para>
- <para>
- False if "this" is definitely NOT prime.
- </para>
- </returns>
- </member>
- <member name="T:DotNetOpenId.Provider.AssociateRequest">
- <summary>
- A request to establish an association.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.AssociateRequest.CreateAssociationTypeHints(DotNetOpenId.Provider.OpenIdProvider)">
- <summary>
- This method is used to throw a carefully crafted exception that will end up getting
- encoded as a response to the RP, given hints as to what
- assoc_type and session_type args we support.
- </summary>
- <returns>A dictionary that should be passed to the OpenIdException
- via the <see cref="F:DotNetOpenId.OpenIdException.ExtraArgsToReturn"/> property.</returns>
- </member>
- <member name="M:DotNetOpenId.Provider.AssociateRequest.Answer">
- <summary>
- Respond to this request with an association.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.AssociateRequest.Mode">
- <summary>
- Returns the string "associate".
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.CheckAuthRequest">
- <summary>
- A request to verify the validity of a previous response.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Provider.CheckAuthRequest.Answer">
- <summary>
- Respond to this request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckAuthRequest.Mode">
- <summary>
- Gets the string "check_authentication".
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.CheckIdRequest">
- <summary>
- A request to confirm the identity of a user.
- </summary>
- <remarks>
- This class handles requests for openid modes checkid_immediate and checkid_setup.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Provider.CheckIdRequest.SetClaimedIdentifierFragment(System.String)">
- <summary>
- Adds an optional fragment (#fragment) portion to a URI ClaimedIdentifier.
- Useful for identifier recycling.
- </summary>
- <param name="fragment">
- Should not include the # prefix character as that will be added internally.
- May be null or the empty string to clear a previously set fragment.
- </param>
- <remarks>
- <para>Unlike the <see cref="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier"/> property, which can only be set if
- using directed identity, this method can be called on any URI claimed identifier.</para>
- <para>Because XRI claimed identifiers (the canonical IDs) are never recycled,
- this method should<i>not</i> be called for XRIs.</para>
- </remarks>
- <exception cref="T:System.InvalidOperationException">
- Thrown when this method is called on an XRI, or on a directed identity request
- before the <see cref="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier"/> property is set.</exception>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsAuthenticated">
- <summary>
- Gets/sets whether the provider has determined that the
- <see cref="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier"/> belongs to the currently logged in user
- and wishes to share this information with the consumer.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.Immediate">
- <summary>
- Whether the consumer demands an immediate response.
- If false, the consumer is willing to wait for the identity provider
- to authenticate the user.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.Realm">
- <summary>
- The URL the consumer site claims to use as its 'base' address.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsReturnUrlDiscoverable">
- <summary>
- Whether verification of the return URL claimed by the Relying Party
- succeeded.
- </summary>
- <remarks>
- This property will never throw a WebException or OpenIdException. Any failures
- occuring during return URL verification results in a false value being returned.
- Details regarding failure may be found in the trace log.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsDirectedIdentity">
- <summary>
- Whether the Provider should help the user select a Claimed Identifier
- to send back to the relying party.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.LocalIdentifier">
- <summary>
- The user identifier used by this particular provider.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier">
- <summary>
- The identifier this user is claiming to control.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.ReturnTo">
- <summary>
- The URL to redirect the user agent to after the authentication attempt.
- This must fall "under" the realm URL.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsResponseReady">
- <summary>
- Indicates whether this request has all the information necessary to formulate a response.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.CancelUrl">
- <summary>
- Get the URL to cancel this request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Provider.CheckIdRequest.SetupUrl">
- <summary>
- Encode this request as a URL to GET.
- Only used in response to immediate auth requests from OpenID 1.x RPs.
- </summary>
- </member>
- <member name="F:DotNetOpenId.EncodingType.IndirectMessage">
- <summary>
- Data to be sent to the OP or RP site by telling the user agent to
- redirect GET or form POST to a special URL with a payload of arguments.
- </summary>
- </member>
- <member name="F:DotNetOpenId.EncodingType.DirectResponse">
- <summary>
- Provider response data to be sent directly to the Relying Party site,
- in response to a direct request initiated by the RP
- (not indirect via the user agent).
- Key-Value Form encoding will be used.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Provider.Signatory">
- <summary>
- Signs things.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Provider.Signatory.smartAssociationLifetime">
- <summary>
- The duration any association and secret key the Provider generates will be good for.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Provider.Signatory.dumbSecretLifetime">
- <summary>
- The duration a secret key used for signing dumb client requests will be good for.
- </summary>
- </member>
- <member name="F:DotNetOpenId.Provider.Signatory.store">
- <summary>
- The store for shared secrets.
- </summary>
- </member>
- <member name="T:DotNetOpenId.XrdsUrlLocations">
- <summary>
- The locations the YADIS protocol describes can contain a reference
- to an XRDS document.
- </summary>
- </member>
- <member name="F:DotNetOpenId.XrdsUrlLocations.HttpHeader">
- <summary>
- Indicates XRDS document referencing from an HTTP protocol header (outside the HTML).
- </summary>
- </member>
- <member name="F:DotNetOpenId.XrdsUrlLocations.HtmlMeta">
- <summary>
- Indicates XRDS document referencing from within an HTML page's &lt;HEAD&gt; tag.
- </summary>
- </member>
- <member name="F:DotNetOpenId.XrdsUrlLocations.Both">
- <summary>
- Indicates XRDS document referencing in both HTTP headers and HTML HEAD tags.
- </summary>
- </member>
- <member name="T:DotNetOpenId.Strings">
- <summary>
- A strongly-typed resource class, for looking up localized strings, etc.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ResourceManager">
- <summary>
- Returns the cached ResourceManager instance used by this class.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.Culture">
- <summary>
- Overrides the current thread's CurrentUICulture property for all
- resource lookups using this strongly typed resource class.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.AttributeAlreadyAdded">
- <summary>
- Looks up a localized string similar to An attribute with type URI &apos;{0}&apos; has already been added..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.AttributeTooManyValues">
- <summary>
- Looks up a localized string similar to Only {0} values for attribute &apos;{1}&apos; were requested, but {2} were supplied..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.BadAssociationPrivateData">
- <summary>
- Looks up a localized string similar to The private data supplied does not meet the requirements of any known Association type. Its length may be too short, or it may have been corrupted..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.CIDVerificationFailed">
- <summary>
- Looks up a localized string similar to XRI CanonicalID verification failed..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ClaimedIdentifierMustBeSetFirst">
- <summary>
- Looks up a localized string similar to The ClaimedIdentifier property must be set first..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.CreateRequestAlreadyCalled">
- <summary>
- Looks up a localized string similar to An authentication request has already been created using CreateRequest()..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.CurrentHttpContextRequired">
- <summary>
- Looks up a localized string similar to HttpContext.Current is null. There must be an ASP.NET request in process for this operation to succeed..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.EncryptionRequired">
- <summary>
- Looks up a localized string similar to An encrypted session using either HTTPS or Diffie-Hellman is required when establishing associations between relying parties and providers..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ExpectedBase64OpenIdQueryParameter">
- <summary>
- Looks up a localized string similar to OpenID parameter &apos;{0}&apos; was expected to be base64 encoded but is not..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ExpiredNonce">
- <summary>
- Looks up a localized string similar to The nonce has expired. It was good until {0} (UTC), and it is now {1} (UTC). If this looks wrong, check the server&apos;s clock, time zone and daylight savings settings..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ExplicitHttpUriSuppliedWithSslRequirement">
- <summary>
- Looks up a localized string similar to URI is not SSL yet requireSslDiscovery is set to true..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ExtensionAlreadyAddedWithSameTypeURI">
- <summary>
- Looks up a localized string similar to An extension sharing namespace &apos;{0}&apos; has already been added. Only one extension per namespace is allowed in a given request..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ExtensionParameterKeysWithoutPrefixExpected">
- <summary>
- Looks up a localized string similar to Extension parameter key &apos;{0}&apos; encountered, but extension parameter keys should not include their prefix..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.FieldMustBeSigned">
- <summary>
- Looks up a localized string similar to The OpenID parameter &apos;{0}&apos; must be signed by the OpenID Provider, but was not..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.FragmentNotAllowedOnXRIs">
- <summary>
- Looks up a localized string similar to Fragment segments do not apply to XRI identifiers..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.HttpContextRequiredForThisOverload">
- <summary>
- Looks up a localized string similar to No current ASP.NET HttpContext was detected. Use an overload that does not require one..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.IAssociationStoreRequiredWhenNoHttpContextAvailable">
- <summary>
- Looks up a localized string similar to No current HttpContext was detected, so an IAssociationStore must be explicitly provided. Call the Server constructor overload that takes an IAssociationStore..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.IdentifierSelectModeOnly">
- <summary>
- Looks up a localized string similar to This operation is only allowed when IsIdentifierSelect is true..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.IdentifierSelectRequiresMatchingIdentifiers">
- <summary>
- Looks up a localized string similar to ClaimedIdentifier and LocalIdentifier must be the same when IsIdentifierSelect is true..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.IncompatibleAssociationAndSessionTypes">
- <summary>
- Looks up a localized string similar to The Provider requested association type &apos;{0}&apos; and session type &apos;{1}&apos;, which are not compatible with each other..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InconsistentAppState">
- <summary>
- Looks up a localized string similar to Inconsistent setting of application state. Authentication request was sent with application state available, but authentication response was received without it available. This makes it impossible to validate the token&apos;s signature and will cause assertion verification failure..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InsecureWebRequestWithSslRequired">
- <summary>
- Looks up a localized string similar to Insecure web request for &apos;{0}&apos; aborted due to security requirements demanding HTTPS..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidCharacterInKeyValueFormInput">
- <summary>
- Looks up a localized string similar to Cannot encode &apos;{0}&apos; because it contains an illegal character for Key-Value Form encoding. (line {1}: &apos;{2}&apos;).
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidKeyValueFormCharacterMissing">
- <summary>
- Looks up a localized string similar to Cannot decode Key-Value Form because a line was found without a &apos;{0}&apos; character. (line {1}: &apos;{2}&apos;).
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidNonce">
- <summary>
- Looks up a localized string similar to The nonce was not in the expected format..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidOpenIdExtensionParameterValue">
- <summary>
- Looks up a localized string similar to OpenID extension {0} parameter {1} had unexpected value &apos;{2}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidOpenIdQueryParameterValue">
- <summary>
- Looks up a localized string similar to OpenID parameter &apos;{0}&apos; had unexpected value &apos;{1}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidOpenIdQueryParameterValueBadBase64">
- <summary>
- Looks up a localized string similar to OpenID parameter &apos;{0}&apos; with value &apos;{1}&apos; failed to base64 decode..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidScheme">
- <summary>
- Looks up a localized string similar to The scheme must be http or https but was &apos;{0}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidSignature">
- <summary>
- Looks up a localized string similar to The signature verification failed..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidUri">
- <summary>
- Looks up a localized string similar to The value &apos;{0}&apos; is not a valid URI..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidXRDSDocument">
- <summary>
- Looks up a localized string similar to Failure parsing XRDS document..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.InvalidXri">
- <summary>
- Looks up a localized string similar to Not a recognized XRI format: &apos;{0}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.IssuedAssertionFailsIdentifierDiscovery">
- <summary>
- Looks up a localized string similar to The OpenId Provider issued an assertion for an Identifier whose discovery information did not match.
- Assertion endpoint info:
- {0}
- Discovered endpoint info:
- {1}.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.KeyAlreadyExists">
- <summary>
- Looks up a localized string similar to The given key &apos;{0}&apos; already exists..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.KeysListAndDictionaryDoNotMatch">
- <summary>
- Looks up a localized string similar to The list of keys do not match the provided dictionary..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.MatchingArgumentsExpected">
- <summary>
- Looks up a localized string similar to The &apos;{0}&apos; and &apos;{1}&apos; parameters must both be or not be &apos;{2}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.MinimumOPVersionRequirementNotMet">
- <summary>
- Looks up a localized string similar to This Relying Party requires a Provider that supports at least OpenID version {0}, but Provider is detected to only support OpenID version {1}..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.MissingCanonicalIDElement">
- <summary>
- Looks up a localized string similar to The XRDS document for XRI {0} is missing the required CanonicalID element..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.MissingInternalQueryParameter">
- <summary>
- Looks up a localized string similar to Query parameter &apos;{0}&apos; was missing from the query..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.MissingOpenIdQueryParameter">
- <summary>
- Looks up a localized string similar to OpenID parameter &apos;{0}&apos; was missing from the query..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.MissingReturnToQueryParameter">
- <summary>
- Looks up a localized string similar to Query parameter &apos;{0}&apos; was expected in the return_to query &apos;{1}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.NoRelyingPartyEndpointDiscovered">
- <summary>
- Looks up a localized string similar to No XRDS document containing OpenId relying party endpoint information could be found at {0}..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.OpenIdEndpointNotFound">
- <summary>
- Looks up a localized string similar to No OpenId endpoint found..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.OpenIdTextBoxEmpty">
- <summary>
- Looks up a localized string similar to No OpenId url is provided..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.OperationOnlyValidForSetupRequiredState">
- <summary>
- Looks up a localized string similar to This operation is only allowed when IAuthenticationResponse.State == AuthenticationStatus.SetupRequired..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.PrefixWithoutPeriodsExpected">
- <summary>
- Looks up a localized string similar to Prefix should not begin or end with a period..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ProviderOpenIdVersionUnknown">
- <summary>
- Looks up a localized string similar to Unable to determine provider&apos;s OpenID version..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ProviderRespondedWithError">
- <summary>
- Looks up a localized string similar to The OpenId Provider responded with an error: &apos;{0}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ProviderRespondedWithUnrecognizedHTTPStatusCode">
- <summary>
- Looks up a localized string similar to The OpenId Provider responded with unrecognized HTTP status code {0}..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.RealmCausedRedirectUponDiscovery">
- <summary>
- Looks up a localized string similar to An HTTP request to the realm URL ({0}) resulted in a redirect, which is not allowed during relying party discovery..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ReplayAttackDetected">
- <summary>
- Looks up a localized string similar to The nonce has already been used..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ResponseNotReady">
- <summary>
- Looks up a localized string similar to OpenId provider&apos;s response is not ready. Use IsResponseReady to check, and fill in the required properties first..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ReturnToArgDifferentFromQueryArg">
- <summary>
- Looks up a localized string similar to The &apos;{0}&apos; parameter does not have the same value for return_to (&apos;{1}&apos;) and the regular query (&apos;{2}&apos;)..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ReturnToNotUnderRealm">
- <summary>
- Looks up a localized string similar to return_to &apos;{0}&apos; not under realm &apos;{1}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.ReturnToParamDoesNotMatchRequestUrl">
- <summary>
- Looks up a localized string similar to The {0} parameter does not match the actual URL the request was made with..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.TamperingDetected">
- <summary>
- Looks up a localized string similar to The &apos;{0}&apos; parameter was expected to have the value &apos;{1}&apos; but had &apos;{2}&apos; instead..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.TooManyRedirects">
- <summary>
- Looks up a localized string similar to The maximum allowable number of redirects were exceeded while requesting &apos;{0}&apos;..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.TypeMustImplementX">
- <summary>
- Looks up a localized string similar to The type must implement {0}..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.UnsafeWebRequestDetected">
- <summary>
- Looks up a localized string similar to The URL &apos;{0}&apos; is rated unsafe and cannot be requested this way..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.UnspecifiedDateTimeKindNotAllowed">
- <summary>
- Looks up a localized string similar to Providing a DateTime whose Kind is Unspecified is not allowed..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.XriResolutionFailed">
- <summary>
- Looks up a localized string similar to XRI resolution failed..
- </summary>
- </member>
- <member name="P:DotNetOpenId.Strings.XriResolutionStatusMissing">
- <summary>
- Looks up a localized string similar to Could not find XRI resolution Status tag or code attribute was invalid..
- </summary>
- </member>
- <member name="T:DotNetOpenId.Logger">
- <summary>
- A general logger for the entire DotNetOpenId library.
- </summary>
- <remarks>
- Because this logger is intended for use with non-localized strings, the
- overloads that take <see cref="T:System.Globalization.CultureInfo"/> have been removed, and
- <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/> is used implicitly.
- </remarks>
- </member>
- <member name="T:DotNetOpenId.Realm">
- <summary>
- A trust root to validate requests and match return URLs against.
- </summary>
- <remarks>
- This fills the OpenID Authentication 2.0 specification for realms.
- See http://openid.net/specs/openid-authentication-2_0.html#realms
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Realm.op_Implicit(System.String)~DotNetOpenId.Realm">
- <summary>
- Implicitly converts the string-form of a URI to a <see cref="T:DotNetOpenId.Realm"/> object.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Realm.op_Implicit(System.Uri)~DotNetOpenId.Realm">
- <summary>
- Implicitly converts a <see cref="T:System.Uri"/> to a <see cref="T:DotNetOpenId.Realm"/> object.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Realm.op_Implicit(DotNetOpenId.Realm)~System.String">
- <summary>
- Implicitly converts a <see cref="T:DotNetOpenId.Realm"/> object to its <see cref="T:System.String"/> form.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Realm.#ctor(System.String)">
- <summary>
- Instantiates a <see cref="T:DotNetOpenId.Realm"/> from its string representation.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Realm.#ctor(System.Uri)">
- <summary>
- Instantiates a <see cref="T:DotNetOpenId.Realm"/> from its <see cref="T:System.Uri"/> representation.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Realm.#ctor(System.UriBuilder)">
- <summary>
- Instantiates a <see cref="T:DotNetOpenId.Realm"/> from its <see cref="T:System.UriBuilder"/> representation.
- </summary>
- <remarks>
- This is useful because UriBuilder can construct a host with a wildcard
- in the Host property, but once there it can't be converted to a Uri.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.Realm.Contains(System.String)">
- <summary>
- Validates a URL against this trust root.
- </summary>
- <param name="url">A string specifying URL to check.</param>
- <returns>Whether the given URL is within this trust root.</returns>
- </member>
- <member name="M:DotNetOpenId.Realm.Contains(System.Uri)">
- <summary>
- Validates a URL against this trust root.
- </summary>
- <param name="url">The URL to check.</param>
- <returns>Whether the given URL is within this trust root.</returns>
- </member>
- <member name="M:DotNetOpenId.Realm.Discover(System.Boolean)">
- <summary>
- Searches for an XRDS document at the realm URL, and if found, searches
- for a description of a relying party endpoints (OpenId login pages).
- </summary>
- <param name="allowRedirects">
- Whether redirects may be followed when discovering the Realm.
- This may be true when creating an unsolicited assertion, but must be
- false when performing return URL verification per 2.0 spec section 9.2.1.
- </param>
- <returns>The details of the endpoints if found, otherwise null.</returns>
- </member>
- <member name="M:DotNetOpenId.Realm.Equals(System.Object)">
- <summary>
- Checks whether one <see cref="T:DotNetOpenId.Realm"/> is equal to another.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Realm.GetHashCode">
- <summary>
- Returns the hash code used for storing this object in a hash table.
- </summary>
- <returns></returns>
- </member>
- <member name="M:DotNetOpenId.Realm.ToString">
- <summary>
- Returns the string form of this <see cref="T:DotNetOpenId.Realm"/>.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.DomainWildcard">
- <summary>
- Whether a '*.' prefix to the hostname is used in the realm to allow
- subdomains or hosts to be added to the URL.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.Host">
- <summary>
- Gets the host component of this instance.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.Scheme">
- <summary>
- Gets the scheme name for this URI.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.Port">
- <summary>
- Gets the port number of this URI.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.AbsolutePath">
- <summary>
- Gets the absolute path of the URI.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.PathAndQuery">
- <summary>
- Gets the System.Uri.AbsolutePath and System.Uri.Query properties separated
- by a question mark (?).
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.NoWildcardUri">
- <summary>
- Gets the realm URL. If the realm includes a wildcard, it is not included here.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Realm.UriWithWildcardChangedToWww">
- <summary>
- Produces the Realm URL. If the realm URL had a wildcard in it,
- the wildcard is replaced with a "www." prefix.
- </summary>
- <remarks>
- See OpenID 2.0 spec section 9.2.1 for the explanation on the addition of
- the "www" prefix.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Realm.IsSane">
- <summary>
- This method checks the to see if a trust root represents a reasonable (sane) set of URLs.
- </summary>
- <remarks>
- 'http://*.com/', for example is not a reasonable pattern, as it cannot meaningfully
- specify the site claiming it. This function attempts to find many related examples,
- but it can only work via heuristics. Negative responses from this method should be
- treated as advisory, used only to alert the user to examine the trust root carefully.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.UriIdentifier.TryCanonicalize(System.UriBuilder,System.Uri@)">
- <summary>
- Removes the fragment from a URL and sets the host to lowercase.
- </summary>
- <remarks>
- This does NOT standardize an OpenID URL for storage in a database, as
- it does nothing to convert the URL to a Claimed Identifier, besides the fact
- that it only deals with URLs whereas OpenID 2.0 supports XRIs.
- For this, you should lookup the value stored in IAuthenticationResponse.ClaimedIdentifier.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.UriIdentifier.DiscoverFromHtml(System.Uri,System.String)">
- <summary>
- Searches HTML for the HEAD META tags that describe OpenID provider services.
- </summary>
- <param name="claimedIdentifier">
- The final URL that provided this HTML document.
- This may not be the same as (this) userSuppliedIdentifier if the
- userSuppliedIdentifier pointed to a 301 Redirect.
- </param>
- <param name="html">The HTML that was downloaded and should be searched.</param>
- <returns>
- An initialized ServiceEndpoint if the OpenID Provider information was
- found. Otherwise null.
- </returns>
- <remarks>
- OpenID 2.0 tags are always used if they are present, otherwise
- OpenID 1.x tags are used if present.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.UriIdentifier.SchemeImplicitlyPrepended">
- <summary>
- Gets whether the scheme was missing when this Identifier was
- created and added automatically as part of the normalization
- process.
- </summary>
- </member>
- <member name="M:DotNetOpenId.UriUtil.CreateQueryString(System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Concatenates a list of name-value pairs as key=value&amp;key=value,
- taking care to properly encode each key and value for URL
- transmission. No ? is prefixed to the string.
- </summary>
- </member>
- <member name="M:DotNetOpenId.UriUtil.CreateQueryString(System.Collections.Specialized.NameValueCollection)">
- <summary>
- Concatenates a list of name-value pairs as key=value&amp;key=value,
- taking care to properly encode each key and value for URL
- transmission. No ? is prefixed to the string.
- </summary>
- </member>
- <member name="M:DotNetOpenId.UriUtil.AppendQueryArgs(System.UriBuilder,System.Collections.Generic.IDictionary{System.String,System.String})">
- <summary>
- Adds a set of name-value pairs to the end of a given URL
- as part of the querystring piece. Prefixes a ? or &amp; before
- first element as necessary.
- </summary>
- <param name="builder">The UriBuilder to add arguments to.</param>
- <param name="args">
- The arguments to add to the query.
- If null, <paramref name="builder"/> is not changed.
- </param>
- </member>
- <member name="M:DotNetOpenId.UriUtil.UriBuilderToStringWithImpliedPorts(System.UriBuilder)">
- <summary>
- Equivalent to UriBuilder.ToString() but omits port # if it may be implied.
- Equivalent to UriBuilder.Uri.ToString(), but doesn't throw an exception if the Host has a wildcard.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Util.GetRequestUrlFromContext">
- <summary>
- Gets the original request URL, as seen from the browser before any URL rewrites on the server if any.
- Cookieless session directory (if applicable) is also included.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Util.FindBestVersion``1(DotNetOpenId.Util.Func{DotNetOpenId.Protocol,``0},System.Collections.Generic.IEnumerable{``0})">
- <summary>
- Scans a list for matches with some element of the OpenID protocol,
- searching from newest to oldest protocol for the first and best match.
- </summary>
- <typeparam name="T">The type of element retrieved from the <see cref="T:DotNetOpenId.Protocol"/> instance.</typeparam>
- <param name="elementOf">Takes a <see cref="T:DotNetOpenId.Protocol"/> instance and returns an element of it.</param>
- <param name="list">The list to scan for matches.</param>
- <returns>The protocol with the element that matches some item in the list.</returns>
- </member>
- <member name="M:DotNetOpenId.Util.AreSequencesEquivalent``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">
- <summary>
- Tests two sequences for same contents and ordering.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Util.ToString``2(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{``0,``1}})">
- <summary>
- Prepares a dictionary for printing as a string.
- </summary>
- <remarks>
- The work isn't done until (and if) the
- <see cref="M:System.Object.ToString"/> method is actually called, which makes it great
- for logging complex objects without being in a conditional block.
- </remarks>
- </member>
- <member name="P:DotNetOpenId.Yadis.XrdElement.OpenIdProviderIdentifierServices">
- <summary>
- Returns services for OP Identifiers.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.XrdElement.OpenIdClaimedIdentifierServices">
- <summary>
- Returns services for Claimed Identifiers.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.XrdElement.ServiceUris">
- <summary>
- An enumeration of all Service/URI elements, sorted in priority order.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Yadis.XrdsDocument.findClaimedIdentifierServices">
- <summary>
- Returns the OpenID-compatible services described by a given XRDS document,
- in priority order.
- </summary>
- </member>
- <member name="F:DotNetOpenId.XriIdentifier.xriResolverProxyTemplate">
- <summary>
- The magic URL that will provide us an XRDS document for a given XRI identifier.
- </summary>
- <remarks>
- We use application/xrd+xml instead of application/xrds+xml because it gets
- xri.net to automatically give us exactly the right XRD element for community i-names
- automatically, saving us having to choose which one to use out of the result.
- The ssl=true parameter tells the proxy resolver to accept only SSL connections
- when resolving community i-names.
- </remarks>
- </member>
- <member name="M:DotNetOpenId.XriIdentifier.IsValidXri(System.String)">
- <summary>
- Tests whether a given string represents a valid XRI format.
- </summary>
- </member>
- <member name="M:DotNetOpenId.XriIdentifier.canonicalizeXri(System.String)">
- <summary>
- Takes any valid form of XRI string and returns the canonical form of the same XRI.
- </summary>
- </member>
- <member name="M:DotNetOpenId.XriIdentifier.Discover(DotNetOpenId.XriIdentifier)">
- <summary>
- Performs discovery on THIS identifier, but generates <see cref="T:DotNetOpenId.RelyingParty.ServiceEndpoint"/>
- instances that treat another given identifier as the user-supplied identifier.
- </summary>
- </member>
- <member name="P:DotNetOpenId.XriIdentifier.OriginalXri">
- <summary>
- The original XRI supplied to the constructor.
- </summary>
- </member>
- <member name="P:DotNetOpenId.XriIdentifier.CanonicalXri">
- <summary>
- The canonical form of the XRI string.
- </summary>
- </member>
- <member name="P:DotNetOpenId.XriIdentifier.XrdsUrl">
- <summary>
- Resolves the XRI to a URL from which an XRDS document may be downloaded.
- </summary>
- </member>
- <member name="M:DotNetOpenId.Yadis.Yadis.Discover(DotNetOpenId.UriIdentifier,System.Boolean)">
- <summary>
- Performs YADIS discovery on some identifier.
- </summary>
- <param name="uri">The URI to perform discovery on.</param>
- <param name="requireSsl">Whether discovery should fail if any step of it is not encrypted.</param>
- <returns>
- The result of discovery on the given URL.
- Null may be returned if an error occurs,
- or if <paramref name="requireSsl"/> is true but part of discovery
- is not protected by SSL.
- </returns>
- </member>
- <member name="M:DotNetOpenId.Yadis.Yadis.FindYadisDocumentLocationInHtmlMetaTags(System.String)">
- <summary>
- Searches an HTML document for a
- &lt;meta http-equiv="X-XRDS-Location" content="{YadisURL}"&gt;
- tag and returns the content of YadisURL.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.DiscoveryResult.RequestUri">
- <summary>
- The URI of the original YADIS discovery request.
- This is the user supplied Identifier as given in the original
- YADIS discovery request.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.DiscoveryResult.NormalizedUri">
- <summary>
- The fully resolved (after redirects) URL of the user supplied Identifier.
- This becomes the ClaimedIdentifier.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.DiscoveryResult.YadisLocation">
- <summary>
- The location the XRDS document was downloaded from, if different
- from the user supplied Identifier.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.DiscoveryResult.ContentType">
- <summary>
- The Content-Type associated with the <see cref="P:DotNetOpenId.Yadis.DiscoveryResult.ResponseText"/>.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.DiscoveryResult.ResponseText">
- <summary>
- The text in the final response.
- This may be an XRDS document or it may be an HTML document,
- as determined by the <see cref="P:DotNetOpenId.Yadis.DiscoveryResult.IsXrds"/> property.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.DiscoveryResult.IsXrds">
- <summary>
- Whether the <see cref="P:DotNetOpenId.Yadis.DiscoveryResult.ResponseText"/> represents an XRDS document.
- False if the response is an HTML document.
- </summary>
- </member>
- <member name="P:DotNetOpenId.Yadis.DiscoveryResult.UsedYadisLocation">
- <summary>
- True if the response to the userSuppliedIdentifier pointed to a different URL
- for the XRDS document.
- </summary>
- </member>
- </members>
-</doc>
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>DotNetOpenId</name>
+ </assembly>
+ <members>
+ <member name="T:DotNetOpenId.Association">
+ <summary>
+ Stores a secret used in signing and verifying messages.
+ </summary>
+ <remarks>
+ OpenID associations may be shared between Provider and Relying Party (smart
+ associations), or be a way for a Provider to recall its own secret for later
+ (dumb associations).
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Association.#ctor(System.String,System.Byte[],System.TimeSpan,System.DateTime)">
+ <summary>
+ Instantiates an <see cref="T:DotNetOpenId.Association"/> object.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Association.Deserialize(System.String,System.DateTime,System.Byte[])">
+ <summary>
+ Re-instantiates an <see cref="T:DotNetOpenId.Association"/> previously persisted in a database or some
+ other shared store.
+ </summary>
+ <param name="handle">
+ The <see cref="P:DotNetOpenId.Association.Handle"/> property of the previous <see cref="T:DotNetOpenId.Association"/> instance.
+ </param>
+ <param name="expires">
+ The value of the <see cref="P:DotNetOpenId.Association.Expires"/> property of the previous <see cref="T:DotNetOpenId.Association"/> instance.
+ </param>
+ <param name="privateData">
+ The byte array returned by a call to <see cref="M:DotNetOpenId.Association.SerializePrivateData"/> on the previous
+ <see cref="T:DotNetOpenId.Association"/> instance.
+ </param>
+ <returns>
+ The newly dehydrated <see cref="T:DotNetOpenId.Association"/>, which can be returned
+ from a custom association store's
+ <see cref="M:DotNetOpenId.IAssociationStore`1.GetAssociation(`0)"/> method.
+ </returns>
+ </member>
+ <member name="F:DotNetOpenId.Association.UnixEpoch">
+ <summary>
+ Represents January 1, 1970 12 AM.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Association.SerializePrivateData">
+ <summary>
+ Returns private data required to persist this <see cref="T:DotNetOpenId.Association"/> in
+ permanent storage (a shared database for example) for deserialization later.
+ </summary>
+ <returns>
+ An opaque byte array that must be stored and returned exactly as it is provided here.
+ The byte array may vary in length depending on the specific type of <see cref="T:DotNetOpenId.Association"/>,
+ but in current versions are no larger than 256 bytes.
+ </returns>
+ <remarks>
+ Values of public properties on the base class <see cref="T:DotNetOpenId.Association"/> are not included
+ in this byte array, as they are useful for fast database lookup and are persisted separately.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Association.GetAssociationType(DotNetOpenId.Protocol)">
+ <summary>
+ The string to pass as the assoc_type value in the OpenID protocol.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Association.Sign(System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IList{System.String},System.String)">
+ <summary>
+ Signs certain given key/value pairs in a supplied dictionary.
+ </summary>
+ <param name="data">
+ A dictionary with key/value pairs, at least some of which you want to include in the signature.
+ </param>
+ <param name="keysToSign">
+ A list of the keys in the supplied dictionary you wish to sign.
+ </param>
+ <param name="keyLookupPrefix">
+ An optional prefix to use in front of a given name in <paramref name="fields"/>
+ when looking up the value from <paramref name="data"/>.
+ </param>
+ <returns>The signature of the key-value pairs.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Association.Sign(System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IList{System.String})">
+ <summary>
+ Generates a signature from a given dictionary.
+ </summary>
+ <param name="data">The dictionary. This dictionary will not be changed.</param>
+ <param name="keyOrder">The order that the data in the dictionary must be encoded in for the signature to be valid.</param>
+ <returns>The calculated signature of the data in the dictionary.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Association.CreateHasher">
+ <summary>
+ Returns the specific hash algorithm used for message signing.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Association.cutToSecond(System.DateTime)">
+ <summary>
+ Rounds the given <see cref="T:System.DateTime"/> downward to the whole second.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Association.Equals(System.Object)">
+ <summary>
+ Tests equality of two <see cref="T:DotNetOpenId.Association"/> objects.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Association.GetHashCode">
+ <summary>
+ Returns the hash code.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.Handle">
+ <summary>
+ A unique handle by which this <see cref="T:DotNetOpenId.Association"/> may be stored or retrieved.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.Issued">
+ <summary>
+ Gets the time that this <see cref="T:DotNetOpenId.Association"/> was first created
+ and the <see cref="P:DotNetOpenId.Association.SecretKey"/> issued.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.TotalLifeLength">
+ <summary>
+ The lifetime the OpenID provider permits this <see cref="T:DotNetOpenId.Association"/>.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.SecretKey">
+ <summary>
+ The shared secret key between the consumer and provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.Expires">
+ <summary>
+ Gets the time when this <see cref="T:DotNetOpenId.Association"/> will expire.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.IsExpired">
+ <summary>
+ Gets whether this <see cref="T:DotNetOpenId.Association"/> has already expired.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.timeTillExpiration">
+ <summary>
+ Gets the TimeSpan till this association expires.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Association.SecondsTillExpiration">
+ <summary>
+ The number of seconds until this <see cref="T:DotNetOpenId.Association"/> expires.
+ Never negative (counter runs to zero).
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.IAssociationStore`1">
+ <summary>
+ Stores <see cref="T:DotNetOpenId.Association"/>s for lookup by their handle, keeping
+ associations separated by a given distinguishing factor (like which server the
+ association is with).
+ </summary>
+ <typeparam name="TKey">
+ <see cref="T:System.Uri"/> for consumers (to distinguish associations across servers) or
+ <see cref="T:DotNetOpenId.AssociationRelyingPartyType"/> for providers (to distingish dumb and smart client associaitons).
+ </typeparam>
+ </member>
+ <member name="M:DotNetOpenId.IAssociationStore`1.StoreAssociation(`0,DotNetOpenId.Association)">
+ <summary>
+ Saves an <see cref="T:DotNetOpenId.Association"/> for later recall.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.IAssociationStore`1.GetAssociation(`0)">
+ <summary>
+ Gets the best association (the one with the longest remaining life) for a given key.
+ Null if no unexpired <see cref="T:DotNetOpenId.Association"/>s exist for the given key.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.IAssociationStore`1.GetAssociation(`0,System.String)">
+ <summary>
+ Gets the association for a given key and handle.
+ Null if no unexpired <see cref="T:DotNetOpenId.Association"/>s exist for the given key and handle.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.IAssociationStore`1.RemoveAssociation(`0,System.String)">
+ <summary>Removes a specified handle that may exist in the store.</summary>
+ <returns>True if the association existed in this store previous to this call.</returns>
+ <remarks>
+ No exception should be thrown if the association does not exist in the store
+ before this call.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.IAssociationStore`1.ClearExpiredAssociations">
+ <summary>
+ Clears all expired associations from the store.
+ </summary>
+ <remarks>
+ If another algorithm is in place to periodically clear out expired associations,
+ this method call may be ignored.
+ This should be done frequently enough to avoid a memory leak, but sparingly enough
+ to not be a performance drain.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.AssociationMemoryStore`1.ClearExpiredAssociations">
+ <summary>
+ Clears all expired associations from the store.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Associations">
+ <summary>
+ A dictionary of handle/Association pairs.
+ </summary>
+ <remarks>
+ Each method is locked, even if it is only one line, so that they are thread safe
+ against each other, particularly the ones that enumerate over the list, since they
+ can break if the collection is changed by another thread during enumeration.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Associations.#ctor">
+ <summary>
+ Instantiates a mapping between association handles and <see cref="T:DotNetOpenId.Association"/> objects.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Associations.Set(DotNetOpenId.Association)">
+ <summary>
+ Stores an <see cref="T:DotNetOpenId.Association"/> in the collection.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Associations.Get(System.String)">
+ <summary>
+ Returns the <see cref="T:DotNetOpenId.Association"/> with the given handle. Null if not found.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Associations.Remove(System.String)">
+ <summary>
+ Removes the <see cref="T:DotNetOpenId.Association"/> with the given handle.
+ </summary>
+ <returns>Whether an <see cref="T:DotNetOpenId.Association"/> with the given handle was in the collection for removal.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Associations.ClearExpired">
+ <summary>
+ Removes all expired associations from the collection.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Associations.Best">
+ <summary>
+ Gets the <see cref="T:DotNetOpenId.Association"/> issued most recently. Null if no valid associations exist.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.DiffieHellmanUtil.ensurePositive(System.Byte[])">
+ <summary>
+ Ensures that the big integer represented by a given series of bytes
+ is a positive integer.
+ </summary>
+ <returns>A byte array (possibly new if a change was required) whose
+ integer is guaranteed to be positive.</returns>
+ <remarks>
+ This is to be consistent with OpenID spec section 4.2.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ExtensionManager.RequestExtensions">
+ <summary>
+ A list of request extensions that may be enumerated over for logging purposes.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.SecuritySettings">
+ <summary>
+ Security settings that may be applicable to both relying parties and providers.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.SecuritySettings.MinimumHashBitLength">
+ <summary>
+ Gets/sets the minimum hash length (in bits) allowed to be used in an <see cref="T:DotNetOpenId.Association"/>
+ with the remote party. The default is 160.
+ </summary>
+ <remarks>
+ SHA-1 (160 bits) has been broken. The minimum secure hash length is now 256 bits.
+ The default is still a 160 bit minimum to allow interop with common remote parties,
+ such as Yahoo! that only supports 160 bits.
+ For sites that require high security such as to store bank account information and
+ health records, 256 is the recommended value.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.SecuritySettings.MaximumHashBitLength">
+ <summary>
+ Gets/sets the maximum hash length (in bits) allowed to be used in an <see cref="T:DotNetOpenId.Association"/>
+ with the remote party. The default is 256 for relying parties and 512 for providers.
+ </summary>
+ <remarks>
+ The longer the bit length, the more secure the identities of your visitors are.
+ Setting a value higher than 256 on a relying party site may reduce performance
+ as many association requests will be denied, causing secondary requests or even
+ authentication failures.
+ Setting a value higher than 256 on a provider increases security where possible
+ without these side-effects.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.ProviderSecuritySettings.ProtectDownlevelReplayAttacks">
+ <summary>
+ Gets/sets whether OpenID 1.x relying parties that may not be
+ protecting their users from replay attacks are protected from
+ replay attacks by this provider.
+ </summary>
+ <remarks>
+ <para>Nonces for protection against replay attacks were not mandated
+ by OpenID 1.x, which leaves users open to replay attacks.</para>
+ <para>This feature works by preventing associations from being formed
+ with OpenID 1.x relying parties, thereby forcing them into
+ "dumb" mode and verifying every claim with this provider.
+ This gives the provider an opportunity to verify its own nonce
+ to protect against replay attacks.</para>
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings">
+ <summary>
+ Security settings that are applicable to relying parties.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.OnRequireSslChanged">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.RequireSslChanged"/> event.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.RequireSsl">
+ <summary>
+ Gets/sets whether the entire pipeline from Identifier discovery to Provider redirect
+ is guaranteed to be encrypted using HTTPS for authentication to succeed.
+ </summary>
+ <remarks>
+ <para>Setting this property to true is appropriate for RPs with highly sensitive
+ personal information behind the authentication (money management, health records, etc.)</para>
+ <para>When set to true, some behavioral changes and additional restrictions are placed:</para>
+ <list>
+ <item>User-supplied identifiers lacking a scheme are prepended with
+ HTTPS:// rather than the standard HTTP:// automatically.</item>
+ <item>User-supplied identifiers are not allowed to use HTTP for the scheme.</item>
+ <item>All redirects during discovery on the user-supplied identifier must be HTTPS.</item>
+ <item>Any XRDS file found by discovery on the User-supplied identifier must be protected using HTTPS.</item>
+ <item>Only Provider endpoints found at HTTPS URLs will be considered.</item>
+ <item>If the discovered identifier is an OP Identifier (directed identity), the
+ Claimed Identifier eventually asserted by the Provider must be an HTTPS identifier.</item>
+ <item>In the case of an unsolicited assertion, the asserted Identifier, discovery on it and
+ the asserting provider endpoint must all be secured by HTTPS.</item>
+ </list>
+ <para>Although the first redirect from this relying party to the Provider is required
+ to use HTTPS, any additional redirects within the Provider cannot be protected and MAY
+ revert the user's connection to HTTP, based on individual Provider implementation.
+ There is nothing that the RP can do to detect or prevent this.</para>
+ <para>
+ An <see cref="T:DotNetOpenId.OpenIdException"/> is thrown when a secure pipeline cannot be established.
+ </para>
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.RelyingPartySecuritySettings.MinimumRequiredOpenIdVersion">
+ <summary>
+ Gets/sets the oldest version of OpenID the remote party is allowed to implement.
+ </summary>
+ <value>Defaults to <see cref="F:DotNetOpenId.ProtocolVersion.V10"/></value>
+ </member>
+ <member name="T:DotNetOpenId.NoDiscoveryIdentifier">
+ <summary>
+ Wraps an existing Identifier and prevents it from performing discovery.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Identifier">
+ <summary>
+ An Identifier is either a "http" or "https" URI, or an XRI.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.#ctor(System.Boolean)">
+ <summary>
+ Constructs an <see cref="T:DotNetOpenId.Identifier"/>.
+ </summary>
+ <param name="isDiscoverySecureEndToEnd">
+ Whether the derived class is prepared to guarantee end-to-end discovery
+ and initial redirect for authentication is performed using SSL.
+ </param>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.op_Implicit(System.String)~DotNetOpenId.Identifier">
+ <summary>
+ Converts the string representation of an Identifier to its strong type.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.op_Implicit(System.Uri)~DotNetOpenId.Identifier">
+ <summary>
+ Returns a strongly-typed Identifier for a given Uri.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.op_Implicit(DotNetOpenId.Identifier)~System.String">
+ <summary>
+ Converts an Identifier to its string representation.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.Parse(System.String)">
+ <summary>
+ Parses an identifier string and automatically determines
+ whether it is an XRI or URI.
+ </summary>
+ <param name="identifier">Either a URI or XRI identifier.</param>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.TryParse(System.String,DotNetOpenId.Identifier@)">
+ <summary>
+ Attempts to parse a string for an OpenId Identifier.
+ </summary>
+ <param name="value">The string to be parsed.</param>
+ <param name="result">The parsed Identifier form.</param>
+ <returns>
+ True if the operation was successful. False if the string was not a valid OpenId Identifier.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.IsValid(System.String)">
+ <summary>
+ Gets whether a given string represents a valid Identifier format.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.Discover">
+ <summary>
+ Performs discovery on the Identifier.
+ </summary>
+ <returns>
+ An initialized structure containing the discovered provider endpoint information.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.op_Equality(DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
+ <summary>
+ Tests equality between two <see cref="T:DotNetOpenId.Identifier"/>s.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.op_Inequality(DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
+ <summary>
+ Tests inequality between two <see cref="T:DotNetOpenId.Identifier"/>s.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.Equals(System.Object)">
+ <summary>
+ Tests equality between two <see cref="T:DotNetOpenId.Identifier"/>s.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.GetHashCode">
+ <summary>
+ Gets the hash code for an <see cref="T:DotNetOpenId.Identifier"/> for storage in a hashtable.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.TrimFragment">
+ <summary>
+ Returns an <see cref="T:DotNetOpenId.Identifier"/> that has no URI fragment.
+ Quietly returns the original <see cref="T:DotNetOpenId.Identifier"/> if it is not
+ a <see cref="T:DotNetOpenId.UriIdentifier"/> or no fragment exists.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Identifier.TryRequireSsl(DotNetOpenId.Identifier@)">
+ <summary>
+ Converts a given identifier to its secure equivalent.
+ UriIdentifiers originally created with an implied HTTP scheme change to HTTPS.
+ Discovery is made to require SSL for the entire resolution process.
+ </summary>
+ <param name="secureIdentifier">
+ The newly created secure identifier.
+ If the conversion fails, <paramref name="secureIdentifier"/> retains
+ <i>this</i> identifiers identity, but will never discover any endpoints.
+ </param>
+ <returns>
+ True if the secure conversion was successful.
+ False if the Identifier was originally created with an explicit HTTP scheme.
+ </returns>
+ </member>
+ <member name="P:DotNetOpenId.Identifier.IsDiscoverySecureEndToEnd">
+ <summary>
+ Whether this Identifier will ensure SSL is used throughout the discovery phase
+ and initial redirect of authentication.
+ </summary>
+ <remarks>
+ If this is False, a value of True may be obtained by calling <see cref="M:DotNetOpenId.Identifier.TryRequireSsl(DotNetOpenId.Identifier@)"/>.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Provider.SigningMessageEncoder">
+ <summary>
+ Encodes responses in to <see cref="T:DotNetOpenId.Response"/>, signing them when required.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.MessageEncoder">
+ <summary>
+ Encodes <see cref="T:DotNetOpenId.IEncodable"/> messages into <see cref="T:DotNetOpenId.Response"/> instances
+ that can be interpreted by the host web site.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.MessageEncoder.KeyValueFormContentType">
+ <summary>
+ The HTTP Content-Type to use in Key-Value Form responses.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.MessageEncoder.GetToPostThreshold">
+ <summary>
+ The maximum allowable size for a 301 Redirect response before we send
+ a 200 OK response with a scripted form POST with the parameters instead
+ in order to ensure successfully sending a large payload to another server
+ that might have a maximum allowable size restriction on its GET request.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.MessageEncoder.Encode(DotNetOpenId.IEncodable)">
+ <summary>
+ Encodes messages into <see cref="T:DotNetOpenId.Response"/> instances.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.IEncodable">
+ <remarks>
+ Classes that implement IEncodable should be either [Serializable] or
+ derive from <see cref="T:System.MarshalByRefObject"/> so that testing can
+ remote across app-domain boundaries to sniff/tamper with messages.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.IEncodable.RedirectUrl">
+ <summary>
+ The URL that the user agent should be redirected to
+ in the case of <see cref="F:DotNetOpenId.EncodingType.IndirectMessage"/>.
+ Does not apply to <see cref="F:DotNetOpenId.EncodingType.DirectResponse"/>.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.IIncomingExtensions.GetExtensionArguments(System.String)">
+ <summary>
+ Gets the key/value pairs of a provider's response for a given OpenID extension.
+ </summary>
+ <param name="extensionTypeUri">
+ The Type URI of the OpenID extension whose arguments are being sought.
+ </param>
+ <returns>
+ Returns key/value pairs for this extension.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.IIncomingExtensions.ContainsExtension(System.String)">
+ <summary>
+ Gets whether any arguments for a given extension are present.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.IOutgoingExtensions.AddExtensionArguments(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Adds query parameters for OpenID extensions to the request directed
+ at the OpenID provider.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.ExtensionArgumentsManager.isReadMode">
+ <summary>
+ Whether extensions are being read or written.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.ExtensionArgumentsManager.extensions">
+ <summary>
+ A complex dictionary where the key is the Type URI of the extension,
+ and the value is another dictionary of the name/value args of the extension.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.ExtensionArgumentsManager.typeUriToAliasAffinity">
+ <summary>
+ This contains a set of aliases that we must be willing to implicitly
+ match to namespaces for backward compatibility with other OpenID libraries.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.ExtensionArgumentsManager.GetArgumentsToSend(System.Boolean)">
+ <summary>
+ Gets the actual arguments to add to a querystring or other response,
+ where type URI, alias, and actual key/values are all defined.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.ExtensionArgumentsManager.GetExtensionArguments(System.String)">
+ <summary>
+ Gets the fields carried by a given OpenId extension.
+ </summary>
+ <returns>The fields included in the given extension, or null if the extension is not present.</returns>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AliasManager.typeUriToAliasMap">
+ <summary>
+ Tracks extension Type URIs and aliases assigned to them.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AliasManager.aliasToTypeUriMap">
+ <summary>
+ Tracks extension aliases and Type URIs assigned to them.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AliasManager.GetAlias(System.String)">
+ <summary>
+ Gets an alias assigned for a given Type URI. A new alias is assigned if necessary.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AliasManager.SetAlias(System.String,System.String)">
+ <summary>
+ Sets an alias and the value that will be returned by <see cref="M:DotNetOpenId.Extensions.AliasManager.ResolveAlias(System.String)"/>.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AliasManager.ResolveAlias(System.String)">
+ <summary>
+ Gets the Type Uri encoded by a given alias.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.Constants">
+ <summary>
+ Attribute Exchange constants
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.FetchResponse">
+ <summary>
+ The Attribute Exchange Fetch message, response leg.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.IExtensionResponse">
+ <summary>
+ The contract an OpenID extension can implement for messages from provider to relying party
+ to make handling extensions generally easier.
+ Extensions are not required to implement this interface, however.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.IExtension">
+ <summary>
+ The contract any OpenID extension for DotNetOpenId must implement.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.IExtension.TypeUri">
+ <summary>
+ Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.IExtension.AdditionalSupportedTypeUris">
+ <summary>
+ Additional TypeURIs that are supported by this extension, in preferred order.
+ May be empty if none other than <see cref="P:DotNetOpenId.Extensions.IExtension.TypeUri"/> is supported, but
+ should not be null.
+ </summary>
+ <remarks>
+ Useful for reading in messages with an older version of an extension.
+ The value in the <see cref="P:DotNetOpenId.Extensions.IExtension.TypeUri"/> property is always checked before
+ trying this list.
+ If you do support multiple versions of an extension using this method,
+ consider adding a CreateResponse method to your request extension class
+ so that the response can have the context it needs to remain compatible
+ given the version of the extension in the request message.
+ The <see cref="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.CreateResponse"/> for an example.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.IExtensionResponse.Serialize(DotNetOpenId.Provider.IRequest)">
+ <summary>
+ Returns the fields this extension should add to an authentication response.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.IExtensionResponse.Deserialize(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.IAuthenticationResponse,System.String)">
+ <summary>
+ Reads a Provider's response for extension values.
+ </summary>
+ <param name="fields">The fields belonging to the extension.</param>
+ <param name="response">The incoming OpenID response carrying the extension.</param>
+ <param name="typeUri">The actual extension TypeUri that was recognized in the message.</param>
+ <returns>
+ True if the extension found a valid set of recognized parameters in the response,
+ false otherwise.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.AddAttribute(DotNetOpenId.Extensions.AttributeExchange.AttributeValues)">
+ <summary>
+ Used by the Provider to add attributes to the response for the relying party.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.GetAttribute(System.String)">
+ <summary>
+ Used by the Relying Party to get the value(s) returned by the OpenID Provider
+ for a given attribute, or null if that attribute was not provided.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.Attributes">
+ <summary>
+ Enumerates over all the attributes included by the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.UpdateUrlSupported">
+ <summary>
+ Whether the OpenID Provider intends to honor the request for updates.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchResponse.UpdateUrl">
+ <summary>
+ The URL the OpenID Provider will post updates to. Must be set if the Provider
+ supports and will use this feature.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest">
+ <summary>
+ An individual attribute to be requested of the OpenID Provider using
+ the Attribute Exchange extension.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor">
+ <summary>
+ Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/> with IsRequired = false, Count = 1.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor(System.String)">
+ <summary>
+ Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/> with IsRequired = false, Count = 1.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor(System.String,System.Boolean)">
+ <summary>
+ Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/> with Count = 1.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.#ctor(System.String,System.Boolean,System.Int32)">
+ <summary>
+ Instantiates a new <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest"/>.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.Respond(System.String[])">
+ <summary>
+ Used by a Provider to create a response to a request for an attribute's value(s)
+ using a given array of strings.
+ </summary>
+ <returns>
+ The newly created <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeValues"/> object that should be added to
+ the <see cref="T:DotNetOpenId.Extensions.AttributeExchange.FetchResponse"/> object.
+ </returns>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.TypeUri">
+ <summary>
+ The URI uniquely identifying the attribute being requested.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.IsRequired">
+ <summary>
+ Whether the relying party considers this a required field.
+ Note that even if set to true, the Provider may not provide the value.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.Count">
+ <summary>
+ The maximum number of values for this attribute the
+ Relying Party wishes to receive from the OpenID Provider.
+ A value of int.MaxValue is considered infinity.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.AttributeValues">
+ <summary>
+ An individual attribute's value(s) as supplied by an OpenID Provider
+ in response to a prior request by an OpenID Relying Party as part of
+ a fetch request, or by a relying party as part of a store request.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.#ctor">
+ <remarks>
+ This is internal because web sites should be using the
+ <see cref="M:DotNetOpenId.Extensions.AttributeExchange.AttributeRequest.Respond(System.String[])"/> method to instantiate.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.#ctor(System.String,System.String[])">
+ <summary>
+ Instantiates an <see cref="T:DotNetOpenId.Extensions.AttributeExchange.AttributeValues"/> object.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.TypeUri">
+ <summary>
+ The URI uniquely identifying the attribute whose value is being supplied.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.AttributeValues.Values">
+ <summary>
+ Gets the values supplied by the Provider.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes">
+ <summary>
+ Attribute types defined at http://www.axschema.org/types/.
+ </summary>
+ <remarks>
+ If you don't see what you need here, check that URL to see if any have been added.
+ You can use new ones directly without adding them to this class, and can even make
+ up your own if you expect the other end to understand what you make up.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Person">
+ <summary>
+ Inherent attributes about a personality such as gender and bio.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Person.Gender">
+ <summary>Gender, either "M" or "F"</summary>
+ <example>"M", "F"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Person.Biography">
+ <summary>Biography (text)</summary>
+ <example>"I am the very model of a modern Major General."</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Preferences">
+ <summary>
+ Preferences such as language and timezone.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Preferences.Language">
+ <summary>Preferred language, as per RFC4646</summary>
+ <example>"en-US"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Preferences.TimeZone">
+ <summary>Home time zone information (as specified in <a href="http://en.wikipedia.org/wiki/List_of_tz_zones_by_name">zoneinfo</a>)</summary>
+ <example>"America/Pacific"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name">
+ <summary>
+ The names a person goes by.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Alias">
+ <summary>Subject's alias or "screen" name</summary>
+ <example>"Johnny5"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.FullName">
+ <summary>Full name of subject</summary>
+ <example>"John Doe"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Prefix">
+ <summary>Honorific prefix for the subject's name</summary>
+ <example>"Mr.", "Mrs.", "Dr."</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.First">
+ <summary>First or given name of subject</summary>
+ <example>"John"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Last">
+ <summary>Last name or surname of subject</summary>
+ <example>"Smith"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Middle">
+ <summary>Middle name(s) of subject</summary>
+ <example>"Robert"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Name.Suffix">
+ <summary>Suffix of subject's name</summary>
+ <example>"III", "Jr."</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Company">
+ <summary>
+ Business affiliation.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Company.CompanyName">
+ <summary>Company name (employer)</summary>
+ <example>"Springfield Power"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Company.JobTitle">
+ <summary>Employee title</summary>
+ <example>"Engineer"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate">
+ <summary>
+ Information about a person's birthdate.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.WholeBirthDate">
+ <summary>Date of birth.</summary>
+ <example>"1979-01-01"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.Year">
+ <summary>Year of birth (four digits)</summary>
+ <example>"1979"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.Month">
+ <summary>Month of birth (1-12)</summary>
+ <example>"05"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.BirthDate.DayOfMonth">
+ <summary>Day of birth</summary>
+ <example>"31"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact">
+ <summary>
+ Various ways to contact a person.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Email">
+ <summary>Internet SMTP email address as per RFC2822</summary>
+ <example>"jsmith@isp.example.com"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone">
+ <summary>
+ Various types of phone numbers.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Preferred">
+ <summary>Main phone number (preferred)</summary>
+ <example>+1-800-555-1234</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Home">
+ <summary>Home phone number</summary>
+ <example>+1-800-555-1234</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Work">
+ <summary>Business phone number</summary>
+ <example>+1-800-555-1234</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Mobile">
+ <summary>Cellular (or mobile) phone number</summary>
+ <example>+1-800-555-1234</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Phone.Fax">
+ <summary>Fax number</summary>
+ <example>+1-800-555-1234</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress">
+ <summary>
+ The many fields that make up an address.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.StreetAddressLine1">
+ <summary>Home postal address: street number, name and apartment number</summary>
+ <example>"#42 135 East 1st Street"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.StreetAddressLine2">
+ <summary>"#42 135 East 1st Street"</summary>
+ <example>"Box 67"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.City">
+ <summary>Home city name</summary>
+ <example>"Vancouver"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.State">
+ <summary>Home state or province name</summary>
+ <example>"BC"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.Country">
+ <summary>Home country code in ISO.3166.1988 (alpha 2) format</summary>
+ <example>"CA"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.HomeAddress.PostalCode">
+ <summary>Home postal code; region specific format</summary>
+ <example>"V5A 4B2"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress">
+ <summary>
+ The many fields that make up an address.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.StreetAddressLine1">
+ <summary>Business postal address: street number, name and apartment number</summary>
+ <example>"#42 135 East 1st Street"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.StreetAddressLine2">
+ <summary>"#42 135 East 1st Street"</summary>
+ <example>"Box 67"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.City">
+ <summary>Business city name</summary>
+ <example>"Vancouver"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.State">
+ <summary>Business state or province name</summary>
+ <example>"BC"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.Country">
+ <summary>Business country code in ISO.3166.1988 (alpha 2) format</summary>
+ <example>"CA"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.WorkAddress.PostalCode">
+ <summary>Business postal code; region specific format</summary>
+ <example>"V5A 4B2"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM">
+ <summary>
+ Various handles for instant message clients.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.AOL">
+ <summary>AOL instant messaging service handle</summary>
+ <example>"jsmith421234"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.ICQ">
+ <summary>ICQ instant messaging service handle</summary>
+ <example>"1234567"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.MSN">
+ <summary>MSN instant messaging service handle</summary>
+ <example>"jsmith42@hotmail.com"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.Yahoo">
+ <summary>Yahoo! instant messaging service handle</summary>
+ <example>"jsmith421234"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.Jabber">
+ <summary>Jabber instant messaging service handle</summary>
+ <example>"jsmith@jabber.example.com"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.IM.Skype">
+ <summary>Skype instant messaging service handle</summary>
+ <example>"jsmith42"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web">
+ <summary>
+ Various web addresses connected with this personality.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Homepage">
+ <summary>Web site URL</summary>
+ <example>"http://example.com/~jsmith/"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Blog">
+ <summary>Blog URL</summary>
+ <example>"http://example.com/jsmith_blog/"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.LinkedIn">
+ <summary>LinkedIn URL</summary>
+ <example>"http://www.linkedin.com/pub/1/234/56"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Amazon">
+ <summary>Amazon URL</summary>
+ <example>"http://www.amazon.com/gp/pdp/profile/A24DLKJ825"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Flickr">
+ <summary>Flickr URL</summary>
+ <example>"http://flickr.com/photos/jsmith42/"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Contact.Web.Delicious">
+ <summary>del.icio.us URL</summary>
+ <example>"http://del.icio.us/jsmith42"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media">
+ <summary>
+ Audio and images of this personality.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.SpokenName">
+ <summary>Spoken name (web URL)</summary>
+ <example>"http://example.com/~jsmith/john_smith.wav"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.AudioGreeting">
+ <summary>Audio greeting (web URL)</summary>
+ <example>"http://example.com/~jsmith/i_greet_you.wav"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.VideoGreeting">
+ <summary>Video greeting (web URL)</summary>
+ <example>"http://example.com/~jsmith/i_greet_you.mov"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images">
+ <summary>
+ Images of this personality.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Default">
+ <summary>Image (web URL); unspecified dimension</summary>
+ <example>"http://example.com/~jsmith/image.jpg"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Aspect11">
+ <summary>Image (web URL) with equal width and height</summary>
+ <example>"http://example.com/~jsmith/image.jpg"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Aspect43">
+ <summary>Image (web URL) 4:3 aspect ratio - landscape</summary>
+ <example>"http://example.com/~jsmith/image.jpg"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.Aspect34">
+ <summary>Image (web URL) 4:3 aspect ratio - landscape</summary>
+ <example>"http://example.com/~jsmith/image.jpg"</example>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.AttributeExchange.WellKnownAttributes.Media.Images.FavIcon">
+ <summary>Image (web URL); favicon format as per FAVICON-W3C. The format for the image must be 16x16 pixels or 32x32 pixels, using either 8-bit or 24-bit colors. The format of the image must be one of PNG (a W3C standard), GIF, or ICO.</summary>
+ <example>"http://example.com/~jsmith/image.jpg"</example>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies">
+ <summary>
+ Well-known authentication policies defined in the PAPE extension spec or by a recognized
+ standards body.
+ </summary>
+ <remarks>
+ This is a class of constants rather than a flags enum because policies may be
+ freely defined and used by anyone, just by using a new Uri.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies.PhishingResistant">
+ <summary>
+ An authentication mechanism where the End User does not provide a shared secret to a party potentially under the control of the Relying Party. (Note that the potentially malicious Relying Party controls where the User-Agent is redirected to and thus may not send it to the End User's actual OpenID Provider).
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies.MultiFactor">
+ <summary>
+ An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor. Common authentication factors are something you know, something you have, and something you are. An example would be authentication using a password and a software token or digital certificate.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies.PhysicalMultiFactor">
+ <summary>
+ An authentication mechanism where the End User authenticates to the OpenID Provider by providing over one authentication factor where at least one of the factors is a physical factor such as a hardware device or biometric. Common authentication factors are something you know, something you have, and something you are. This policy also implies the Multi-Factor Authentication policy (http://schemas.openid.net/pape/policies/2007/06/multi-factor) and both policies MAY BE specified in conjunction without conflict. An example would be authentication using a password and a hardware token.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants">
+ <summary>
+ OpenID Provider Authentication Policy extension constants.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.TypeUri">
+ <summary>
+ The namespace used by this extension in messages.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.RequestParameters">
+ <summary>
+ Parameters to be included with PAPE requests.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.RequestParameters.MaxAuthAge">
+ <summary>
+ Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request.
+ </summary>
+ <value>Integer value greater than or equal to zero in seconds.</value>
+ <remarks>
+ The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.RequestParameters.PreferredAuthPolicies">
+ <summary>
+ Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can.
+ </summary>
+ <value>Space separated list of authentication policy URIs.</value>
+ <remarks>
+ If no policies are requested, the RP may be interested in other information such as the authentication age.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters">
+ <summary>
+ Parameters to be included with PAPE responses.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters.AuthPolicies">
+ <summary>
+ One or more authentication policy URIs that the OP conformed to when authenticating the End User.
+ </summary>
+ <value>Space separated list of authentication policy URIs.</value>
+ <remarks>
+ If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none".
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters.AuthTime">
+ <summary>
+ Optional. The most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies.
+ </summary>
+ <value>
+ The timestamp MUST be formatted as specified in section 5.6 of [RFC3339] (Klyne, G. and C. Newman, “Date and Time on the Internet: Timestamps,” .), with the following restrictions:
+ * All times must be in the UTC timezone, indicated with a "Z".
+ * No fractional seconds are allowed
+ For example: 2005-05-15T17:11:51Z
+ </value>
+ <remarks>
+ If the RP's request included the "openid.max_auth_age" parameter then the OP MUST include "openid.auth_time" in its response. If "openid.max_auth_age" was not requested, the OP MAY choose to include "openid.auth_time" in its response.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.Constants.ResponseParameters.NistAuthLevel">
+ <summary>
+ Optional. The Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User.
+ </summary>
+ <value>Integer value between 0 and 4 inclusive.</value>
+ <remarks>
+ Level 0 is not an assurance level defined by NIST, but rather SHOULD be used to signify that the OP recognizes the parameter and the End User authentication did not meet the requirements of Level 1. See Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel">
+ <summary>
+ Descriptions for NIST-defined levels of assurance that a credential
+ has not been compromised and therefore the extent to which an
+ authentication assertion can be trusted.
+ </summary>
+ <remarks>
+ One using this enum should review the following publication for details
+ before asserting or interpreting what these levels signify, notwithstanding
+ the brief summaries attached to each level in DotNetOpenId documentation.
+ http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.InsufficientForLevel1">
+ <summary>
+ Not an assurance level defined by NIST, but rather SHOULD be used to
+ signify that the OP recognizes the parameter and the End User
+ authentication did not meet the requirements of Level 1.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level1">
+ <summary>
+ See this document for a thorough description:
+ http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level2">
+ <summary>
+ See this document for a thorough description:
+ http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level3">
+ <summary>
+ See this document for a thorough description:
+ http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.NistAssuranceLevel.Level4">
+ <summary>
+ See this document for a thorough description:
+ http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest">
+ <summary>
+ The PAPE request part of an OpenID Authentication request message.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.IExtensionRequest">
+ <summary>
+ The contract an OpenID extension can implement for messages from relying party to provider
+ to make handling extensions generally easier.
+ Extensions are not required to implement this interface, however.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.IExtensionRequest.Serialize(DotNetOpenId.RelyingParty.IAuthenticationRequest)">
+ <summary>
+ Returns the fields this extension should add to an authentication request.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.IExtensionRequest.Deserialize(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.Provider.IRequest,System.String)">
+ <summary>
+ Reads the extension information on an authentication request to the provider.
+ </summary>
+ <param name="fields">The fields belonging to the extension.</param>
+ <param name="request">The incoming OpenID request carrying the extension.</param>
+ <param name="typeUri">The actual extension TypeUri that was recognized in the message.</param>
+ <returns>
+ True if the extension found a valid set of recognized parameters in the request,
+ false otherwise.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.#ctor">
+ <summary>
+ Instantiates a new <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest"/>.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.Equals(System.Object)">
+ <summary>
+ Tests equality between two <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest"/> instances.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.GetHashCode">
+ <summary>
+ Gets a hash code for this object.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.MaximumAuthenticationAge">
+ <summary>
+ Optional. If the End User has not actively authenticated to the OP within the number of seconds specified in a manner fitting the requested policies, the OP SHOULD authenticate the End User for this request.
+ </summary>
+ <remarks>
+ The OP should realize that not adhering to the request for re-authentication most likely means that the End User will not be allowed access to the services provided by the RP. If this parameter is absent in the request, the OP should authenticate the user at its own discretion.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyRequest.PreferredPolicies">
+ <summary>
+ Zero or more authentication policy URIs that the OP SHOULD conform to when authenticating the user. If multiple policies are requested, the OP SHOULD satisfy as many as it can.
+ </summary>
+ <value>List of authentication policy URIs obtainable from the <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.AuthenticationPolicies"/> class or from a custom list.</value>
+ <remarks>
+ If no policies are requested, the RP may be interested in other information such as the authentication age.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse">
+ <summary>
+ The PAPE response part of an OpenID Authentication response message.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.#ctor">
+ <summary>
+ Instantiates a <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse"/>.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.Equals(System.Object)">
+ <summary>
+ Tests equality between two <see cref="T:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse"/> instances.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.GetHashCode">
+ <summary>
+ Gets a hash code for this object.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.ActualPolicies">
+ <summary>
+ One or more authentication policy URIs that the OP conformed to when authenticating the End User.
+ </summary>
+ <remarks>
+ If no policies were met though the OP wishes to convey other information in the response, this parameter MUST be included with the value of "none".
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.AuthenticationTimeUtc">
+ <summary>
+ Optional. The most recent timestamp when the End User has actively authenticated to the OP in a manner fitting the asserted policies.
+ </summary>
+ <remarks>
+ If the RP's request included the "openid.max_auth_age" parameter then the OP MUST include "openid.auth_time" in its response. If "openid.max_auth_age" was not requested, the OP MAY choose to include "openid.auth_time" in its response.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.ProviderAuthenticationPolicy.PolicyResponse.NistAssuranceLevel">
+ <summary>
+ Optional. The Assurance Level as defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-63 (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006.) [NIST_SP800‑63] corresponding to the authentication method and policies employed by the OP when authenticating the End User.
+ </summary>
+ <remarks>
+ See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.SimpleRegistration.Constants">
+ <summary>
+ Simple Registration constants
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.FetchRequest">
+ <summary>
+ The Attribute Exchange Fetch message, request leg.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.AddAttribute(DotNetOpenId.Extensions.AttributeExchange.AttributeRequest)">
+ <summary>
+ Used by the Relying Party to add a request for the values of a given attribute.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.GetAttribute(System.String)">
+ <summary>
+ Used by the Provider to find out whether the value(s) of a given attribute is requested.
+ </summary>
+ <returns>Null if the Relying Party did not ask for the values of the given attribute.</returns>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.Attributes">
+ <summary>
+ Enumerates the attributes whose values are requested by the Relying Party.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.FetchRequest.UpdateUrl">
+ <summary>
+ If set, the OpenID Provider may re-post the fetch response message to the
+ specified URL at some time after the initial response has been sent, using an
+ OpenID Authentication Positive Assertion to inform the relying party of updates
+ to the requested fields.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.StoreRequest">
+ <summary>
+ The Attribute Exchange Store message, request leg.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.AddAttribute(DotNetOpenId.Extensions.AttributeExchange.AttributeValues)">
+ <summary>
+ Used by the Relying Party to add a given attribute with one or more values
+ to the request for storage.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.AddAttribute(System.String,System.String[])">
+ <summary>
+ Used by the Relying Party to add a given attribute with one or more values
+ to the request for storage.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.GetAttribute(System.String)">
+ <summary>
+ Used by the Provider to gets the value(s) associated with a given attribute
+ that should be stored.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.StoreRequest.Attributes">
+ <summary>
+ Lists all the attributes that are included in the store request.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.AttributeExchange.StoreResponse">
+ <summary>
+ The Attribute Exchange Store message, response leg.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.StoreResponse.Succeeded">
+ <summary>
+ Whether the storage request succeeded.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.AttributeExchange.StoreResponse.FailureReason">
+ <summary>
+ The reason for the failure.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.IResponse">
+ <summary>
+ Represents an indirect message passed between Relying Party and Provider.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.IResponse.Send">
+ <summary>
+ Sends the response to the browser.
+ </summary>
+ <remarks>
+ This requires an ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.IResponse.Code">
+ <summary>
+ The HTTP status code that should accompany the response.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.IResponse.Headers">
+ <summary>
+ The HTTP headers that should be added to the response.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.IResponse.Body">
+ <summary>
+ The body that should be sent as the response content.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Loggers.ILog">
+ <summary>
+ The ILog interface is use by application to log messages into
+ the log4net framework.
+ </summary>
+ <remarks>
+ <para>
+ Use the <see cref="T:log4net.LogManager"/> to obtain logger instances
+ that implement this interface. The <see cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
+ static method is used to get logger instances.
+ </para>
+ <para>
+ This class contains methods for logging at different levels and also
+ has properties for determining if those logging levels are
+ enabled in the current configuration.
+ </para>
+ <para>
+ This interface can be implemented in different ways. This documentation
+ specifies reasonable behavior that a caller can expect from the actual
+ implementation, however different implementations reserve the right to
+ do things differently.
+ </para>
+ </remarks>
+ <example>Simple example of logging messages
+ <code lang="C#">
+ ILog log = LogManager.GetLogger("application-log");
+
+ log.Info("Application Start");
+ log.Debug("This is a debug message");
+
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is another debug message");
+ }
+ </code>
+ </example>
+ <seealso cref="T:log4net.LogManager"/>
+ <seealso cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
+ <author>Nicko Cadell</author>
+ <author>Gert Driesen</author>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)">
+ <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
+ <summary>
+ Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.
+ </summary>
+ <param name="message">The message object to log.</param>
+ <remarks>
+ <para>
+ This method first checks if this logger is <c>DEBUG</c>
+ enabled by comparing the level of this logger with the
+ <see cref="F:log4net.Core.Level.Debug"/> level. If this logger is
+ <c>DEBUG</c> enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of
+ the additivity flag.
+ </para>
+ <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
+ to this method will print the name of the <see cref="T:System.Exception"/>
+ but no stack trace. To print a stack trace use the
+ <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/> form instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)">
+ <summary>
+ Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level including
+ the stack trace of the <see cref="T:System.Exception"/> passed
+ as a parameter.
+ </summary>
+ <param name="message">The message object to log.</param>
+ <param name="exception">The exception to log, including its stack trace.</param>
+ <remarks>
+ <para>
+ See the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/> form for more detailed information.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object[])">
+ <overloads>Log a formatted string with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.String,System.Object,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <param name="arg2">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
+ </summary>
+ <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Info(System.Object)">
+ <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
+ <summary>
+ Logs a message object with the <see cref="F:log4net.Core.Level.Info"/> level.
+ </summary>
+ <remarks>
+ <para>
+ This method first checks if this logger is <c>INFO</c>
+ enabled by comparing the level of this logger with the
+ <see cref="F:log4net.Core.Level.Info"/> level. If this logger is
+ <c>INFO</c> enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+ </para>
+ <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
+ to this method will print the name of the <see cref="T:System.Exception"/>
+ but no stack trace. To print a stack trace use the
+ <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/> form instead.
+ </para>
+ </remarks>
+ <param name="message">The message object to log.</param>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)">
+ <summary>
+ Logs a message object with the <c>INFO</c> level including
+ the stack trace of the <see cref="T:System.Exception"/> passed
+ as a parameter.
+ </summary>
+ <param name="message">The message object to log.</param>
+ <param name="exception">The exception to log, including its stack trace.</param>
+ <remarks>
+ <para>
+ See the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/> form for more detailed information.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object[])">
+ <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.String,System.Object,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <param name="arg2">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
+ </summary>
+ <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)">
+ <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
+ <summary>
+ Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.
+ </summary>
+ <remarks>
+ <para>
+ This method first checks if this logger is <c>WARN</c>
+ enabled by comparing the level of this logger with the
+ <see cref="F:log4net.Core.Level.Warn"/> level. If this logger is
+ <c>WARN</c> enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+ </para>
+ <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
+ to this method will print the name of the <see cref="T:System.Exception"/>
+ but no stack trace. To print a stack trace use the
+ <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/> form instead.
+ </para>
+ </remarks>
+ <param name="message">The message object to log.</param>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)">
+ <summary>
+ Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level including
+ the stack trace of the <see cref="T:System.Exception"/> passed
+ as a parameter.
+ </summary>
+ <param name="message">The message object to log.</param>
+ <param name="exception">The exception to log, including its stack trace.</param>
+ <remarks>
+ <para>
+ See the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/> form for more detailed information.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object[])">
+ <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.String,System.Object,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <param name="arg2">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
+ </summary>
+ <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Error(System.Object)">
+ <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
+ <summary>
+ Logs a message object with the <see cref="F:log4net.Core.Level.Error"/> level.
+ </summary>
+ <param name="message">The message object to log.</param>
+ <remarks>
+ <para>
+ This method first checks if this logger is <c>ERROR</c>
+ enabled by comparing the level of this logger with the
+ <see cref="F:log4net.Core.Level.Error"/> level. If this logger is
+ <c>ERROR</c> enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+ </para>
+ <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
+ to this method will print the name of the <see cref="T:System.Exception"/>
+ but no stack trace. To print a stack trace use the
+ <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/> form instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)">
+ <summary>
+ Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level including
+ the stack trace of the <see cref="T:System.Exception"/> passed
+ as a parameter.
+ </summary>
+ <param name="message">The message object to log.</param>
+ <param name="exception">The exception to log, including its stack trace.</param>
+ <remarks>
+ <para>
+ See the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/> form for more detailed information.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object[])">
+ <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.String,System.Object,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <param name="arg2">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
+ </summary>
+ <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)">
+ <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
+ <summary>
+ Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+ </summary>
+ <remarks>
+ <para>
+ This method first checks if this logger is <c>FATAL</c>
+ enabled by comparing the level of this logger with the
+ <see cref="F:log4net.Core.Level.Fatal"/> level. If this logger is
+ <c>FATAL</c> enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+ </para>
+ <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
+ to this method will print the name of the <see cref="T:System.Exception"/>
+ but no stack trace. To print a stack trace use the
+ <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/> form instead.
+ </para>
+ </remarks>
+ <param name="message">The message object to log.</param>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)">
+ <summary>
+ Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level including
+ the stack trace of the <see cref="T:System.Exception"/> passed
+ as a parameter.
+ </summary>
+ <param name="message">The message object to log.</param>
+ <param name="exception">The exception to log, including its stack trace.</param>
+ <remarks>
+ <para>
+ See the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/> form for more detailed information.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object[])">
+ <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.String,System.Object,System.Object,System.Object)">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+ </summary>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="arg0">An Object to format</param>
+ <param name="arg1">An Object to format</param>
+ <param name="arg2">An Object to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
+ <summary>
+ Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
+ </summary>
+ <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
+ <param name="format">A String containing zero or more format items</param>
+ <param name="args">An Object array containing zero or more objects to format</param>
+ <remarks>
+ <para>
+ The message is formatted using the <c>String.Format</c> method. See
+ <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
+ of the formatting.
+ </para>
+ <para>
+ This method does not take an <see cref="T:System.Exception"/> object to include in the
+ log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
+ methods instead.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object,System.Exception)"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled"/>
+ </member>
+ <member name="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled">
+ <summary>
+ Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Debug"/> level.
+ </summary>
+ <value>
+ <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Debug"/> events, <c>false</c> otherwise.
+ </value>
+ <remarks>
+ <para>
+ This function is intended to lessen the computational cost of
+ disabled log debug statements.
+ </para>
+ <para> For some ILog interface <c>log</c>, when you write:</para>
+ <code lang="C#">
+ log.Debug("This is entry number: " + i );
+ </code>
+ <para>
+ You incur the cost constructing the message, string construction and concatenation in
+ this case, regardless of whether the message is logged or not.
+ </para>
+ <para>
+ If you are worried about speed (who isn't), then you should write:
+ </para>
+ <code lang="C#">
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+ </code>
+ <para>
+ This way you will not incur the cost of parameter
+ construction if debugging is disabled for <c>log</c>. On
+ the other hand, if the <c>log</c> is debug enabled, you
+ will incur the cost of evaluating whether the logger is debug
+ enabled twice. Once in <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/> and once in
+ the <see cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>. This is an insignificant overhead
+ since evaluating a logger takes about 1% of the time it
+ takes to actually log. This is the preferred style of logging.
+ </para>
+ <para>Alternatively if your logger is available statically then the is debug
+ enabled state can be stored in a static variable like this:
+ </para>
+ <code lang="C#">
+ private static readonly bool isDebugEnabled = log.IsDebugEnabled;
+ </code>
+ <para>
+ Then when you come to log you can write:
+ </para>
+ <code lang="C#">
+ if (isDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+ </code>
+ <para>
+ This way the debug enabled state is only queried once
+ when the class is loaded. Using a <c>private static readonly</c>
+ variable is the most efficient because it is a run time constant
+ and can be heavily optimized by the JIT compiler.
+ </para>
+ <para>
+ Of course if you use a static readonly variable to
+ hold the enabled state of the logger then you cannot
+ change the enabled state at runtime to vary the logging
+ that is produced. You have to decide if you need absolute
+ speed or runtime flexibility.
+ </para>
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Debug(System.Object)"/>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/>
+ </member>
+ <member name="P:DotNetOpenId.Loggers.ILog.IsInfoEnabled">
+ <summary>
+ Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Info"/> level.
+ </summary>
+ <value>
+ <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Info"/> events, <c>false</c> otherwise.
+ </value>
+ <remarks>
+ For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Info(System.Object)"/>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="P:DotNetOpenId.Loggers.ILog.IsWarnEnabled">
+ <summary>
+ Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Warn"/> level.
+ </summary>
+ <value>
+ <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Warn"/> events, <c>false</c> otherwise.
+ </value>
+ <remarks>
+ For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Warn(System.Object)"/>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="P:DotNetOpenId.Loggers.ILog.IsErrorEnabled">
+ <summary>
+ Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Error"/> level.
+ </summary>
+ <value>
+ <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Error"/> events, <c>false</c> otherwise.
+ </value>
+ <remarks>
+ For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Error(System.Object)"/>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="P:DotNetOpenId.Loggers.ILog.IsFatalEnabled">
+ <summary>
+ Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Fatal"/> level.
+ </summary>
+ <value>
+ <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Fatal"/> events, <c>false</c> otherwise.
+ </value>
+ <remarks>
+ For more information see <see cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>.
+ </remarks>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.Fatal(System.Object)"/>
+ <seealso cref="M:DotNetOpenId.Loggers.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/>
+ <seealso cref="P:DotNetOpenId.Loggers.ILog.IsDebugEnabled"/>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.TraceLogger.Initialize">
+ <summary>
+ Returns a new logger that uses the <see cref="T:System.Diagnostics.Trace"/> class
+ if sufficient CAS permissions are granted to use it, otherwise returns false.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.Log4NetLogger.Initialize">
+ <summary>
+ Returns a new log4net logger if it exists, or returns null if the assembly cannot be found.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.Log4NetLogger.createLogger">
+ <summary>
+ Creates the log4net.LogManager. Call ONLY once log4net.dll is known to be present.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Loggers.NoOpLogger.Initialize">
+ <summary>
+ Returns a new logger that does nothing when invoked.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.ProtocolVersion">
+ <summary>
+ An enumeration of the OpenID protocol versions supported by this library.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.ProtocolVersion.V10">
+ <summary>
+ OpenID Authentication 1.0
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.ProtocolVersion.V11">
+ <summary>
+ OpenID Authentication 1.1
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.ProtocolVersion.V20">
+ <summary>
+ OpenID Authentication 2.0
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Protocol">
+ <summary>
+ Tracks the several versions of OpenID this library supports and the unique
+ constants to each version used in the protocol.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.AllVersions">
+ <summary>
+ A list of all supported OpenID versions, in order starting from newest version.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.Default">
+ <summary>
+ The default (or most recent) supported version of the OpenID protocol.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Protocol.Detect(System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Attempts to detect the right OpenID protocol version based on the contents
+ of an incoming OpenID <i>indirect</i> message or <i>direct request</i>.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Protocol.DetectFromDirectResponse(System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Attempts to detect the right OpenID protocol version based on the contents
+ of an incoming OpenID <i>direct</i> response message.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Protocol.Detect(System.String[])">
+ <summary>
+ Attemps to detect the highest OpenID protocol version supported given a set
+ of XRDS Service Type URIs included for some service.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.Version">
+ <summary>
+ The OpenID version that this <see cref="T:DotNetOpenId.Protocol"/> instance describes.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.XmlNamespace">
+ <summary>
+ The namespace of OpenId 1.x elements in XRDS documents.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.QueryDeclaredNamespaceVersion">
+ <summary>
+ The value of the openid.ns parameter that appears on the query string
+ whenever data is passed between relying party and provider for OpenID 2.0
+ and later.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.ClaimedIdentifierServiceTypeURI">
+ <summary>
+ The XRD/Service/Type value discovered in an XRDS document when
+ "discovering" on a Claimed Identifier (http://andrewarnott.yahoo.com)
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.OPIdentifierServiceTypeURI">
+ <summary>
+ The XRD/Service/Type value discovered in an XRDS document when
+ "discovering" on an OP Identifier rather than a Claimed Identifier.
+ (http://yahoo.com)
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.RPReturnToTypeURI">
+ <summary>
+ The XRD/Service/Type value discovered in an XRDS document when
+ "discovering" on a Realm URL and looking for the endpoint URL
+ that can receive authentication assertions.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.ClaimedIdentifierForOPIdentifier">
+ <summary>
+ Used as the Claimed Identifier and the OP Local Identifier when
+ the User Supplied Identifier is an OP Identifier.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.HtmlDiscoveryProviderKey">
+ <summary>
+ The value of the 'rel' attribute in an HTML document's LINK tag
+ when the same LINK tag's HREF attribute value contains the URL to an
+ OP Endpoint URL.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.HtmlDiscoveryLocalIdKey">
+ <summary>
+ The value of the 'rel' attribute in an HTML document's LINK tag
+ when the same LINK tag's HREF attribute value contains the URL to use
+ as the OP Local Identifier.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.openid">
+ <summary>
+ Parts of the protocol that define parameter names that appear in the
+ query string. Each parameter name is prefixed with 'openid.'.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.openidnp">
+ <summary>
+ Parts of the protocol that define parameter names that appear in the
+ query string. Each parameter name is NOT prefixed with 'openid.'.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.Args">
+ <summary>
+ The various 'constants' that appear as parameter arguments (values).
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.MaximumUserAgentAuthenticationTime">
+ <summary>
+ The maximum time a user can be allowed to take to complete authentication.
+ </summary>
+ <remarks>
+ This is used to calculate the length of time that nonces are stored.
+ This is internal until we can decide whether to leave this static, or make
+ it an instance member, or put it inside the IConsumerApplicationStore interface.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Protocol.MaximumAllowableTimeSkew">
+ <summary>
+ The maximum permissible difference in clocks between relying party and
+ provider web servers, discounting time zone differences.
+ </summary>
+ <remarks>
+ This is used when storing/validating nonces from the provider.
+ If it is conceivable that a server's clock could be up to five minutes
+ off from true UTC time, then the maximum time skew should be set to
+ ten minutes to allow one server to be five minutes ahead and the remote
+ server to be five minutes behind and still be able to communicate.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Protocol.ProtocolVersion">
+ <summary>
+ Returns the <see cref="P:DotNetOpenId.Protocol.ProtocolVersion"/> enum value for the <see cref="T:DotNetOpenId.Protocol"/> instance.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Protocol.QueryArguments.SessionTypes.All">
+ <summary>
+ A preference order list of all supported session types.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Protocol.QueryArguments.SignatureAlgorithms.All">
+ <summary>
+ A preference order list of signature algorithms we support.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.AssertionMessage.CreateUnsolicitedAssertion(DotNetOpenId.Provider.OpenIdProvider,DotNetOpenId.Realm,DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
+ <summary>
+ Creates a message that can be sent to a user agent to redirect them to a
+ relying party web site complete with authentication information to
+ automatically log them into that web site.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Provider.RelyingPartyReceivingEndpoint.supportedServiceTypeUris">
+ <summary>
+ The Type URIs of supported services advertised on a relying party's XRDS document.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.RelyingPartyReceivingEndpoint.RelyingPartyEndpoint">
+ <summary>
+ The URL to the login page on the discovered relying party web site.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.RelyingPartyReceivingEndpoint.Protocol">
+ <summary>
+ The OpenId protocol that the discovered relying party supports.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AssociateRequest.#ctor(DotNetOpenId.RelyingParty.OpenIdRelyingParty,DotNetOpenId.RelyingParty.ServiceEndpoint,System.Collections.Generic.IDictionary{System.String,System.String},Org.Mentalis.Security.Cryptography.DiffieHellman)">
+ <summary>
+ Instantiates an <see cref="T:DotNetOpenId.RelyingParty.AssociateRequest"/> object.
+ </summary>
+ <param name="relyingParty">The RP instance that is creating this request.</param>
+ <param name="provider">The discovered OpenID Provider endpoint information.</param>
+ <param name="args">The arguments assembled for sending to the Provider.</param>
+ <param name="dh">Optional. Supplied only if Diffie-Hellman is used for encrypting the association secret key.</param>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AssociateResponse.SecondAttempt">
+ <summary>
+ A custom-made associate request to try again when an OP
+ doesn't support the settings we suggested, but we support
+ the ones the OP suggested.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.AuthenticationRequestMode">
+ <summary>
+ Indicates the mode the Provider should use while authenticating the end user.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.AuthenticationRequestMode.Immediate">
+ <summary>
+ The Provider should use whatever credentials are immediately available
+ to determine whether the end user owns the Identifier. If sufficient
+ credentials (i.e. cookies) are not immediately available, the Provider
+ should fail rather than prompt the user.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.AuthenticationRequestMode.Setup">
+ <summary>
+ The Provider should determine whether the end user owns the Identifier,
+ displaying a web page to the user to login etc., if necessary.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.IAuthenticationRequest">
+ <summary>
+ Instances of this interface represent relying party authentication
+ requests that may be queried/modified in specific ways before being
+ routed to the OpenID Provider.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.AddCallbackArguments(System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Adds given key/value pairs to the query that the provider will use in
+ the request to return to the consumer web site.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.AddCallbackArguments(System.String,System.String)">
+ <summary>
+ Adds a given key/value pair to the query that the provider will use in
+ the request to return to the consumer web site.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.AddExtension(DotNetOpenId.Extensions.IExtensionRequest)">
+ <summary>
+ Adds an OpenID extension to the request directed at the OpenID provider.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IAuthenticationRequest.RedirectToProvider">
+ <summary>
+ Redirects the user agent to the provider for authentication.
+ Execution of the current page terminates after this call.
+ </summary>
+ <remarks>
+ This method requires an ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.Mode">
+ <summary>
+ Gets/sets the mode the Provider should use during authentication.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.RedirectingResponse">
+ <summary>
+ Gets the HTTP response the relying party should send to the user agent
+ to redirect it to the OpenID Provider to start the OpenID authentication process.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ReturnToUrl">
+ <summary>
+ Gets the URL that the user agent will return to after authentication
+ completes or fails at the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.Realm">
+ <summary>
+ Gets the URL that identifies this consumer web application that
+ the Provider will display to the end user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ClaimedIdentifier">
+ <summary>
+ Gets the Claimed Identifier that the User Supplied Identifier
+ resolved to. Null if the user provided an OP Identifier
+ (directed identity).
+ </summary>
+ <remarks>
+ Null is returned if the user is using the directed identity feature
+ of OpenID 2.0 to make it nearly impossible for a relying party site
+ to improperly store the reserved OpenID URL used for directed identity
+ as a user's own Identifier.
+ However, to test for the Directed Identity feature, please test the
+ <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.IsDirectedIdentity"/> property rather than testing this
+ property for a null value.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.IsDirectedIdentity">
+ <summary>
+ Gets whether the authenticating user has chosen to let the Provider
+ determine and send the ClaimedIdentifier after authentication.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.Provider">
+ <summary>
+ Gets information about the OpenId Provider, as advertised by the
+ OpenId discovery documents found at the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ClaimedIdentifier"/>
+ location.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationRequest.ProviderVersion">
+ <summary>
+ The detected version of OpenID implemented by the Provider.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.filterAndSortEndpoints(System.Collections.ObjectModel.ReadOnlyCollection{DotNetOpenId.RelyingParty.ServiceEndpoint},DotNetOpenId.RelyingParty.OpenIdRelyingParty)">
+ <summary>
+ Returns a filtered and sorted list of the available OP endpoints for a discovered Identifier.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.selectEndpoint(System.Collections.ObjectModel.ReadOnlyCollection{DotNetOpenId.RelyingParty.ServiceEndpoint},DotNetOpenId.RelyingParty.OpenIdRelyingParty)">
+ <summary>
+ Chooses which provider endpoint is the best one to use.
+ </summary>
+ <returns>The best endpoint, or null if no acceptable endpoints were found.</returns>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.AddCallbackArguments(System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Adds given key/value pairs to the query that the provider will use in
+ the request to return to the consumer web site.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.AddCallbackArguments(System.String,System.String)">
+ <summary>
+ Adds a given key/value pair to the query that the provider will use in
+ the request to return to the consumer web site.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationRequest.RedirectToProvider">
+ <summary>
+ Redirects the user agent to the provider for authentication.
+ Execution of the current page terminates after this call.
+ </summary>
+ <remarks>
+ This method requires an ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.OutgoingExtensions">
+ <summary>
+ Extension arguments to pass to the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.ReturnToArgs">
+ <summary>
+ Arguments to add to the return_to part of the query string, so that
+ these values come back to the consumer when the user agent returns.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.ProviderVersion">
+ <summary>
+ The detected version of OpenID implemented by the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.DotNetOpenId#RelyingParty#IAuthenticationRequest#Provider">
+ <summary>
+ Gets information about the OpenId Provider, as advertised by the
+ OpenId discovery documents found at the <see cref="P:DotNetOpenId.RelyingParty.AuthenticationRequest.ClaimedIdentifier"/>
+ location.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationRequest.RedirectingResponse">
+ <summary>
+ Gets the response to send to the user agent to begin the
+ OpenID authentication process.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.AuthenticationStatus">
+ <summary>
+ An enumeration of the possible results of an authentication attempt.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Canceled">
+ <summary>
+ The authentication was canceled by the user agent while at the provider.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Failed">
+ <summary>
+ The authentication failed because an error was detected in the OpenId communication.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.SetupRequired">
+ <summary>
+ <para>The Provider responded to a request for immediate authentication approval
+ with a message stating that additional user agent interaction is required
+ before authentication can be completed.</para>
+ <para>Casting the <see cref="T:DotNetOpenId.RelyingParty.IAuthenticationResponse"/> to a
+ <see cref="T:DotNetOpenId.RelyingParty.ISetupRequiredAuthenticationResponse"/> in this case can help
+ you retry the authentication using setup (non-immediate) mode.</para>
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Authenticated">
+ <summary>
+ Authentication is completed successfully.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.IAuthenticationResponse">
+ <summary>
+ An instance of this interface represents an identity assertion
+ from an OpenID Provider. It may be in response to an authentication
+ request previously put to it by a Relying Party site or it may be an
+ unsolicited assertion.
+ </summary>
+ <remarks>
+ Relying party web sites should handle both solicited and unsolicited
+ assertions. This interface does not offer a way to discern between
+ solicited and unsolicited assertions as they should be treated equally.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IAuthenticationResponse.GetExtension``1">
+ <summary>
+ Tries to get an OpenID extension that may be present in the response.
+ </summary>
+ <returns>The extension, if it is found. Null otherwise.</returns>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IAuthenticationResponse.GetExtension(System.Type)">
+ <summary>
+ Tries to get an OpenID extension that may be present in the response.
+ </summary>
+ <returns>The extension, if it is found. Null otherwise.</returns>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.ClaimedIdentifier">
+ <summary>
+ An Identifier that the end user claims to own. For use with user database storage and lookup.
+ May be null for some failed authentications (i.e. failed directed identity authentications).
+ </summary>
+ <remarks>
+ <para>
+ This is the secure identifier that should be used for database storage and lookup.
+ It is not always friendly (i.e. =Arnott becomes =!9B72.7DD1.50A9.5CCD), but it protects
+ user identities against spoofing and other attacks.
+ </para>
+ <para>
+ For user-friendly identifiers to display, use the
+ <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay"/> property.
+ </para>
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay">
+ <summary>
+ Gets a user-friendly OpenID Identifier for display purposes ONLY.
+ </summary>
+ <remarks>
+ <para>
+ This <i>should</i> be put through <see cref="M:System.Web.HttpUtility.HtmlEncode(System.String)"/> before
+ sending to a browser to secure against javascript injection attacks.
+ </para>
+ <para>
+ This property retains some aspects of the user-supplied identifier that get lost
+ in the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.ClaimedIdentifier"/>. For example, XRIs used as user-supplied
+ identifiers (i.e. =Arnott) become unfriendly unique strings (i.e. =!9B72.7DD1.50A9.5CCD).
+ For display purposes, such as text on a web page that says "You're logged in as ...",
+ this property serves to provide the =Arnott string, or whatever else is the most friendly
+ string close to what the user originally typed in.
+ </para>
+ <para>
+ If the user-supplied identifier is a URI, this property will be the URI after all
+ redirects, and with the protocol and fragment trimmed off.
+ If the user-supplied identifier is an XRI, this property will be the original XRI.
+ If the user-supplied identifier is an OpenID Provider identifier (i.e. yahoo.com),
+ this property will be the Claimed Identifier, with the protocol stripped if it is a URI.
+ </para>
+ <para>
+ It is <b>very</b> important that this property <i>never</i> be used for database storage
+ or lookup to avoid identity spoofing and other security risks. For database storage
+ and lookup please use the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.ClaimedIdentifier"/> property.
+ </para>
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.Status">
+ <summary>
+ The detailed success or failure status of the authentication attempt.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.Exception">
+ <summary>
+ Details regarding a failed authentication attempt, if available.
+ This will be set if and only if <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.Status"/> is <see cref="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Failed"/>.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.ISetupRequiredAuthenticationResponse">
+ <summary>
+ An interface to expose useful properties and functionality for handling
+ authentication responses that are returned from Immediate authentication
+ requests that require a subsequent request to be made in non-immediate mode.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ISetupRequiredAuthenticationResponse.ClaimedOrProviderIdentifier">
+ <summary>
+ The <see cref="T:DotNetOpenId.Identifier"/> to pass to <see cref="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier)"/>
+ in a subsequent authentication attempt.
+ </summary>
+ <remarks>
+ When directed identity is used, this will be the Provider Identifier given by the user.
+ Otherwise it will be the Claimed Identifier derived from the user-supplied identifier.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.AuthenticationResponse.signedArguments">
+ <summary>
+ The arguments returned from the OP that were signed.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.GetExtension``1">
+ <summary>
+ Tries to get an OpenID extension that may be present in the response.
+ </summary>
+ <typeparam name="T">The extension to retrieve.</typeparam>
+ <returns>The extension, if it is found. Null otherwise.</returns>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifyReturnTo(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.ServiceEndpoint,System.Uri)">
+ <summary>
+ Verifies that the openid.return_to field matches the URL of the actual HTTP request.
+ </summary>
+ <remarks>
+ From OpenId Authentication 2.0 section 11.1:
+ To verify that the "openid.return_to" URL matches the URL that is processing this assertion:
+ * The URL scheme, authority, and path MUST be the same between the two URLs.
+ * Any query parameters that are present in the "openid.return_to" URL MUST
+ also be present with the same values in the URL of the HTTP request the RP received.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifyDiscoveredInfoMatchesAssertedInfo(DotNetOpenId.RelyingParty.OpenIdRelyingParty,System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.ServiceEndpoint,DotNetOpenId.RelyingParty.ServiceEndpoint)">
+ <remarks>
+ This is documented in OpenId Authentication 2.0 section 11.2.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifyFieldsAreSigned(System.String[],System.String[])">
+ <summary>
+ Checks that fields that must be signed are in fact signed.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifySignatureByAssociation(System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.Protocol,System.String[],DotNetOpenId.Association)">
+ <summary>
+ Verifies that a query is signed and that the signed fields have not been tampered with.
+ </summary>
+ <exception cref="T:DotNetOpenId.OpenIdException">Thrown when the signature is missing or the query has been tampered with.</exception>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.AuthenticationResponse.verifySignatureByProvider(DotNetOpenId.RelyingParty.OpenIdRelyingParty,System.Collections.Generic.IDictionary{System.String,System.String},DotNetOpenId.RelyingParty.ServiceEndpoint)">
+ <summary>
+ Performs a dumb-mode authentication verification by making an extra
+ request to the provider after the user agent was redirected back
+ to the consumer site with an authenticated status.
+ </summary>
+ <returns>Whether the authentication is valid.</returns>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Status">
+ <summary>
+ The detailed success or failure status of the authentication attempt.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Exception">
+ <summary>
+ Details regarding a failed authentication attempt, if available.
+ This will only be set if <see cref="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Status"/> is <see cref="F:DotNetOpenId.RelyingParty.AuthenticationStatus.Failed"/>,
+ but may sometimes by null in this case as well.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.ClaimedIdentifier">
+ <summary>
+ An Identifier that the end user claims to own.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.FriendlyIdentifierForDisplay">
+ <summary>
+ Gets a user-friendly OpenID Identifier for display purposes ONLY.
+ </summary>
+ <remarks>
+ See <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay"/>.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.Provider">
+ <summary>
+ The discovered endpoint information.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.IncomingExtensions">
+ <summary>
+ Gets the set of arguments that the Provider included as extensions.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.AuthenticationResponse.ClaimedOrProviderIdentifier">
+ <summary>
+ The <see cref="T:DotNetOpenId.Identifier"/> to pass to <see cref="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier)"/>
+ in a subsequent authentication attempt.
+ </summary>
+ <remarks>
+ When directed identity is used, this will be the Provider Identifier given by the user.
+ Otherwise it will be the Claimed Identifier derived from the user-supplied identifier.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.IRelyingPartyApplicationStore">
+ <summary>
+ The contract for implementing a custom store for a relying party web site.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.INonceStore">
+ <summary>
+ The contract for recalling nonces during their useful lifetime.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.INonceStore.TryStoreNonce(DotNetOpenId.Nonce)">
+ <summary>
+ Stores a nonce at least until it expires.
+ </summary>
+ <returns>
+ True if the nonce was stored and did not exist previous to this call.
+ False if the nonce already exists in the store.
+ </returns>
+ <remarks>
+ <para>When persisting nonce instances, only the <see cref="P:DotNetOpenId.Nonce.Code"/> and <see cref="P:DotNetOpenId.Nonce.ExpirationDate"/>
+ properties are significant. The Code property is used for checking prior nonce use,
+ and the ExpirationDate for rapid deletion of expired nonces.</para>
+ <para>Nonces never need to be deserialized.</para>
+ <para>When checking if a nonce already exists, only the Nonce.Code field should be compared.</para>
+ <para>Checking for the prior existence of the given nonce and adding the nonce if it
+ did not previously exist must be an atomic operation to prevent replay attacks
+ in the race condition of two threads trying to store the same nonce at the same time.
+ This should be done by using a UNIQUE constraint on the Nonce.Code column, and perhaps
+ a transaction that guarantees repeatable READ operations to ensure that no other process
+ can add a given nonce once you've verified that it's not there.</para>
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.INonceStore.ClearExpiredNonces">
+ <summary>
+ Hints to the store to clear expired nonces.
+ </summary>
+ <remarks>
+ If another algorithm is in place to periodically clear out expired nonces,
+ this method call may be ignored.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.INonceStore.SecretSigningKey">
+ <summary>
+ Gets some key that can be used for signing. Any positive length can be used, but a
+ length of 64 bytes is recommended.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.IProviderEndpoint">
+ <summary>
+ Information published about an OpenId Provider by the
+ OpenId discovery documents found at a user's Claimed Identifier.
+ </summary>
+ <remarks>
+ Because information provided by this interface is suppplied by a
+ user's individually published documents, it may be incomplete or inaccurate.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IProviderEndpoint.IsExtensionSupported``1">
+ <summary>
+ Checks whether the OpenId Identifier claims support for a given extension.
+ </summary>
+ <typeparam name="T">The extension whose support is being queried.</typeparam>
+ <returns>True if support for the extension is advertised. False otherwise.</returns>
+ <remarks>
+ Note that a true or false return value is no guarantee of a Provider's
+ support for or lack of support for an extension. The return value is
+ determined by how the authenticating user filled out his/her XRDS document only.
+ The only way to be sure of support for a given extension is to include
+ the extension in the request and see if a response comes back for that extension.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IProviderEndpoint.IsExtensionSupported(System.Type)">
+ <summary>
+ Checks whether the OpenId Identifier claims support for a given extension.
+ </summary>
+ <param name="extensionType">The extension whose support is being queried.</param>
+ <returns>True if support for the extension is advertised. False otherwise.</returns>
+ <remarks>
+ Note that a true or false return value is no guarantee of a Provider's
+ support for or lack of support for an extension. The return value is
+ determined by how the authenticating user filled out his/her XRDS document only.
+ The only way to be sure of support for a given extension is to include
+ the extension in the request and see if a response comes back for that extension.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IProviderEndpoint.Version">
+ <summary>
+ The detected version of OpenID implemented by the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IProviderEndpoint.Uri">
+ <summary>
+ The URL that the OpenID Provider receives authentication requests at.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint">
+ <summary>
+ An <see cref="T:DotNetOpenId.RelyingParty.IProviderEndpoint"/> interface with additional members for use
+ in sorting for most preferred endpoint.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.IsTypeUriPresent(System.String)">
+ <summary>
+ Checks for the presence of a given Type URI in an XRDS service.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.ServicePriority">
+ <summary>
+ Gets the priority associated with this service that may have been given
+ in the XRDS document.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.UriPriority">
+ <summary>
+ Gets the priority associated with the service endpoint URL.
+ </summary>
+ <remarks>
+ When sorting by priority, this property should be considered second after
+ <see cref="P:DotNetOpenId.RelyingParty.IXrdsProviderEndpoint.ServicePriority"/>.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.OpenIdMobileTextBox">
+ <summary>
+ An ASP.NET control for mobile devices that provides a minimal text box that is OpenID-aware.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.UsePersistentCookieDefault">
+ <summary>
+ Default value of <see cref="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.UsePersistentCookie"/>.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnLoad(System.EventArgs)">
+ <summary>
+ Checks for incoming OpenID authentication responses and fires appropriate events.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Request">
+ <summary>
+ The OpenID authentication request that is about to be sent.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.PrepareAuthenticationRequest">
+ <summary>
+ Constructs the authentication request and adds the Simple Registration extension arguments.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.LogOn">
+ <summary>
+ Immediately redirects to the OpenID Provider to verify the Identifier
+ provided in the text box.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnLoggedIn(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.LoggedIn"/> event.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnFailed(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Failed"/> event.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnCanceled(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Canceled"/> event.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.OnSetupRequired(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.SetupRequired"/> event.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RealmUrl">
+ <summary>
+ The OpenID <see cref="T:DotNetOpenId.Realm"/> of the relying party web site.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.ImmediateMode">
+ <summary>
+ True if a Provider should reply immediately to the authentication request
+ without interacting with the user. False if the Provider can take time
+ to authenticate the user in order to complete an authentication attempt.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.UsePersistentCookie">
+ <summary>
+ Whether to send a persistent cookie upon successful
+ login so the user does not have to log in upon returning to this site.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestNickname">
+ <summary>
+ Gets/sets your level of interest in receiving the user's nickname from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestEmail">
+ <summary>
+ Gets/sets your level of interest in receiving the user's email address from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestFullName">
+ <summary>
+ Gets/sets your level of interest in receiving the user's full name from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestBirthDate">
+ <summary>
+ Gets/sets your level of interest in receiving the user's birthdate from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestGender">
+ <summary>
+ Gets/sets your level of interest in receiving the user's gender from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestPostalCode">
+ <summary>
+ Gets/sets your level of interest in receiving the user's postal code from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestCountry">
+ <summary>
+ Gets/sets your level of interest in receiving the user's country from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestLanguage">
+ <summary>
+ Gets/sets your level of interest in receiving the user's preferred language from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.RequestTimeZone">
+ <summary>
+ Gets/sets your level of interest in receiving the user's time zone from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.PolicyUrl">
+ <summary>
+ Gets/sets the URL to your privacy policy page that describes how
+ claims will be used and/or shared.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.EnableRequestProfile">
+ <summary>
+ Turns the entire Simple Registration extension on or off.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.LoggedIn">
+ <summary>
+ Fired upon completion of a successful login.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Failed">
+ <summary>
+ Fired when a login attempt fails.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.Canceled">
+ <summary>
+ Fired when an authentication attempt is canceled at the OpenID Provider.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdMobileTextBox.SetupRequired">
+ <summary>
+ Fired when an Immediate authentication attempt fails, and the Provider suggests using non-Immediate mode.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.UntrustedWebRequest">
+ <summary>
+ A paranoid HTTP get/post request engine. It helps to protect against attacks from remote
+ server leaving dangling connections, sending too much data, causing requests against
+ internal servers, etc.
+ </summary>
+ <remarks>
+ Protections include:
+ * Conservative maximum time to receive the complete response.
+ * Only HTTP and HTTPS schemes are permitted.
+ * Internal IP address ranges are not permitted: 127.*.*.*, 1::*
+ * Internal host names are not permitted (periods must be found in the host name)
+ If a particular host would be permitted but is in the blacklist, it is not allowed.
+ If a particular host would not be permitted but is in the whitelist, it is allowed.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.UntrustedWebRequest.MockRequests">
+ <summary>
+ Used in unit testing to mock HTTP responses to expected requests.
+ </summary>
+ <remarks>
+ If null, no mocking will take place. But if non-null, all requests
+ will be channeled through this mock method for processing.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.UntrustedWebRequest.readData(System.Net.HttpWebResponse,System.Byte[]@,System.Int32@)">
+ <summary>
+ Reads a maximum number of bytes from a response stream.
+ </summary>
+ <returns>
+ The number of bytes actually read.
+ WARNING: This can be fewer than the size of the returned buffer.
+ </returns>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.MaximumBytesToRead">
+ <summary>
+ The default maximum bytes to read in any given HTTP request.
+ Default is 1MB. Cannot be less than 2KB.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.MaximumRedirections">
+ <summary>
+ The total number of redirections to allow on any one request.
+ Default is 10.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.ReadWriteTimeout">
+ <summary>
+ Gets the time allowed to wait for single read or write operation to complete.
+ Default is 500 milliseconds.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.Timeout">
+ <summary>
+ Gets the time allowed for an entire HTTP request.
+ Default is 5 seconds.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.WhitelistHosts">
+ <summary>
+ A collection of host name literals that should be allowed even if they don't
+ pass standard security checks.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.WhitelistHostsRegex">
+ <summary>
+ A collection of host name regular expressions that indicate hosts that should
+ be allowed even though they don't pass standard security checks.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.BlacklistHosts">
+ <summary>
+ A collection of host name literals that should be rejected even if they
+ pass standard security checks.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.UntrustedWebRequest.BlacklistHostsRegex">
+ <summary>
+ A collection of host name regular expressions that indicate hosts that should
+ be rjected even if they pass standard security checks.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.UntrustedWebResponse.#ctor(System.Uri,System.Uri,System.Net.WebHeaderCollection,System.Net.HttpStatusCode,System.String,System.String,System.IO.Stream)">
+ <summary>
+ Constructs a mock web response.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Nonce">
+ <summary>
+ Represents some unique value that can help prevent replay attacks.
+ </summary>
+ <remarks>
+ When persisting nonce instances, only the <see cref="P:DotNetOpenId.Nonce.Code"/> and <see cref="P:DotNetOpenId.Nonce.ExpirationDate"/>
+ properties are significant. Nonces never need to be deserialized.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Nonce.allowedCharacters">
+ <summary>
+ These are the characters that may be chosen from when forming a random nonce,
+ per the OpenID 2.0 Authentication spec section 10.1.
+ </summary>
+ <remarks>
+ The following characters are allowed in the spec, but because they can cause validation
+ failures with ASP.NET query validation (XSS-detection) they are deliberately left out of
+ the set of characters we choose from: &lt; &amp;
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Nonce.#ctor(System.String,System.Boolean)">
+ <summary>
+ Deserializes a nonce from a string passed to us.
+ </summary>
+ <param name="code">
+ A nonce in the format described by the OpenID Authentication 2.0
+ spec section 10.1. Specifically, it should be in the format:
+ 2005-05-15T17:11:51ZUNIQUE
+ </param>
+ <param name="remoteServerOrigin"></param>
+ </member>
+ <member name="M:DotNetOpenId.Nonce.Equals(System.Object)">
+ <summary>
+ Tests equality of two <see cref="T:DotNetOpenId.Nonce"/> objects.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Nonce.GetHashCode">
+ <summary>
+ Gets the hash code.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Nonce.ToString">
+ <summary>
+ Returns the string representation of the <see cref="T:DotNetOpenId.Nonce"/>.
+ This is the <see cref="P:DotNetOpenId.Nonce.Code"/> property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Nonce.Code">
+ <summary>
+ The string form of the nonce that can be transmitted with an authentication
+ request or response.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Nonce.CreationDate">
+ <summary>
+ The UTC date/time this nonce was generated.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Nonce.IsExpired">
+ <summary>
+ Gets whether this nonce is so old it no longer needs to be stored.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Nonce.ExpirationDate">
+ <summary>
+ Gets the UTC date beyond which this nonce is no longer valid, so storing
+ a nonce for replay attack protection is only necessary until this time.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.OpenIdRelyingParty">
+ <summary>
+ Provides the programmatic facilities to act as an OpenId consumer.
+ </summary>
+ <remarks>
+ For easier, ASP.NET designer drop-in support for adding OpenID login support,
+ see the <see cref="T:DotNetOpenId.RelyingParty.OpenIdLogin"/> or <see cref="T:DotNetOpenId.RelyingParty.OpenIdTextBox"/> controls.
+ </remarks>
+ <example>
+ <code language="ASP.NET">
+ &lt;h2&gt;Login Page &lt;/h2&gt;
+ &lt;asp:Label ID="Label1" runat="server" Text="OpenID Login" /&gt;
+ &lt;asp:TextBox ID="openIdBox" runat="server" /&gt;
+ &lt;asp:Button ID="loginButton" runat="server" Text="Login" OnClick="loginButton_Click" /&gt;
+ &lt;asp:CustomValidator runat="server" ID="openidValidator" ErrorMessage="Invalid OpenID Identifier"
+ ControlToValidate="openIdBox" EnableViewState="false" OnServerValidate="openidValidator_ServerValidate" /&gt;
+ &lt;br /&gt;
+ &lt;asp:Label ID="loginFailedLabel" runat="server" EnableViewState="False" Text="Login failed"
+ Visible="False" /&gt;
+ &lt;asp:Label ID="loginCanceledLabel" runat="server" EnableViewState="False" Text="Login canceled"
+ Visible="False" /&gt;
+ </code>
+ <code language="c#">
+ protected void openidValidator_ServerValidate(object source, ServerValidateEventArgs args) {
+ // This catches common typos that result in an invalid OpenID Identifier.
+ args.IsValid = Identifier.IsValid(args.Value);
+ }
+
+ protected void loginButton_Click(object sender, EventArgs e) {
+ if (!Page.IsValid) return; // don't login if custom validation failed.
+ OpenIdRelyingParty openid = new OpenIdRelyingParty();
+ try {
+ IAuthenticationRequest request = openid.CreateRequest(openIdBox.Text);
+ // This is where you would add any OpenID extensions you wanted
+ // to include in the authentication request.
+ // request.AddExtension(someExtensionRequestInstance);
+
+ // Send your visitor to their Provider for authentication.
+ request.RedirectToProvider();
+ } catch (OpenIdException ex) {
+ // The user probably entered an Identifier that
+ // was not a valid OpenID endpoint.
+ openidValidator.Text = ex.Message;
+ openidValidator.IsValid = false;
+ }
+ }
+
+ protected void Page_Load(object sender, EventArgs e) {
+ openIdBox.Focus();
+
+ OpenIdRelyingParty openid = new OpenIdRelyingParty();
+ if (openid.Response != null) {
+ switch (openid.Response.Status) {
+ case AuthenticationStatus.Authenticated:
+ // This is where you would look for any OpenID extension responses included
+ // in the authentication assertion.
+ // var extension = openid.Response.GetExtension&lt;SomeExtensionResponseType&gt;();
+
+ // Use FormsAuthentication to tell ASP.NET that the user is now logged in,
+ // with the OpenID Claimed Identifier as their username.
+ FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false);
+ break;
+ case AuthenticationStatus.Canceled:
+ loginCanceledLabel.Visible = true;
+ break;
+ case AuthenticationStatus.Failed:
+ loginFailedLabel.Visible = true;
+ break;
+ // We don't need to handle SetupRequired because we're not setting
+ // IAuthenticationRequest.Mode to immediate mode.
+ //case AuthenticationStatus.SetupRequired:
+ // break;
+ }
+ }
+ }
+ </code>
+ </example>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.#ctor">
+ <summary>
+ Constructs an OpenId consumer that uses the current HttpContext request
+ and uses the HttpApplication dictionary as its association store.
+ </summary>
+ <remarks>
+ This method requires a current ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.#ctor(DotNetOpenId.RelyingParty.IRelyingPartyApplicationStore,System.Uri,System.Collections.Specialized.NameValueCollection)">
+ <summary>
+ Constructs an OpenId consumer that uses a given querystring and IAssociationStore.
+ </summary>
+ <param name="store">
+ The application-level store where associations with other OpenId providers can be
+ preserved for optimized authentication and information about nonces can be stored.
+ In a multi-server web farm environment, this store MUST be shared across
+ all servers. Optional: if null, the relying party will operate in stateless mode.
+ </param>
+ <param name="requestUrl">
+ Optional. The current incoming HTTP request that may contain an OpenId assertion.
+ If not included, any OpenId authentication assertions will not be processed.
+ </param>
+ <param name="query">
+ The name/value pairs that came in on the
+ QueryString of a GET request or in the entity of a POST request.
+ For example: (Request.HttpMethod == "GET" ? Request.QueryString : Request.Form).
+ This must be supplied if <paramref name="requestUrl"/> is supplied.
+ </param>
+ <remarks>
+ The IRelyingPartyApplicationStore must be shared across an entire web farm
+ because of the design of how nonces are stored/retrieved. Even if
+ a given visitor is guaranteed to have affinity toward one server,
+ replay attacks from another host may be directed at another server,
+ which must therefore share the nonce information in the application
+ state store in order to stop the intruder.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier,DotNetOpenId.Realm,System.Uri)">
+ <summary>
+ Creates an authentication request to verify that a user controls
+ some given Identifier.
+ </summary>
+ <param name="userSuppliedIdentifier">
+ The Identifier supplied by the user. This may be a URL, an XRI or i-name.
+ </param>
+ <param name="realm">
+ The shorest URL that describes this relying party web site's address.
+ For example, if your login page is found at https://www.example.com/login.aspx,
+ your realm would typically be https://www.example.com/.
+ </param>
+ <param name="returnToUrl">
+ The URL of the login page, or the page prepared to receive authentication
+ responses from the OpenID Provider.
+ </param>
+ <returns>
+ An authentication request object that describes the HTTP response to
+ send to the user agent to initiate the authentication.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier,DotNetOpenId.Realm)">
+ <summary>
+ Creates an authentication request to verify that a user controls
+ some given Identifier.
+ </summary>
+ <param name="userSuppliedIdentifier">
+ The Identifier supplied by the user. This may be a URL, an XRI or i-name.
+ </param>
+ <param name="realm">
+ The shorest URL that describes this relying party web site's address.
+ For example, if your login page is found at https://www.example.com/login.aspx,
+ your realm would typically be https://www.example.com/.
+ </param>
+ <returns>
+ An authentication request object that describes the HTTP response to
+ send to the user agent to initiate the authentication.
+ </returns>
+ <remarks>
+ This method requires an ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(DotNetOpenId.Identifier)">
+ <summary>
+ Creates an authentication request to verify that a user controls
+ some given Identifier.
+ </summary>
+ <param name="userSuppliedIdentifier">
+ The Identifier supplied by the user. This may be a URL, an XRI or i-name.
+ </param>
+ <returns>
+ An authentication request object that describes the HTTP response to
+ send to the user agent to initiate the authentication.
+ </returns>
+ <remarks>
+ This method requires an ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.isAuthenticationResponseReady">
+ <summary>
+ Gets whether an OpenId provider's response to a prior authentication challenge
+ is embedded in this web request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Response">
+ <summary>
+ Gets the result of a user agent's visit to his OpenId provider in an
+ authentication attempt. Null if no response is available.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Encoder">
+ <summary>
+ The message encoder to use.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.EndpointOrder">
+ <summary>
+ Gets/sets the ordering routine that will determine which XRDS
+ Service element to try first
+ </summary>
+ <remarks>
+ This may never be null. To reset to default behavior this property
+ can be set to the value of <see cref="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.DefaultEndpointOrder"/>.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.DefaultEndpointOrder">
+ <summary>
+ Gets an XRDS sorting routine that uses the XRDS Service/@Priority
+ attribute to determine order.
+ </summary>
+ <remarks>
+ Endpoints lacking any priority value are sorted to the end of the list.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.EndpointFilter">
+ <summary>
+ Provides a way to optionally filter the providers that may be used in authenticating a user.
+ </summary>
+ <remarks>
+ If provided, the delegate should return true to accept an endpoint, and false to reject it.
+ If null, all identity providers will be accepted. This is the default.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.HttpApplicationStore">
+ <summary>
+ The standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary
+ to store associations and nonces.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Settings">
+ <summary>
+ Provides access to the adjustable security settings of this instance
+ of <see cref="T:DotNetOpenId.RelyingParty.OpenIdRelyingParty"/>.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdRelyingParty.Configuration">
+ <summary>
+ Gets the relevant Configuration section for this OpenIdRelyingParty.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.EndpointSelector">
+ <summary>
+ A delegate that decides whether a given OpenID Provider endpoint may be
+ considered for authenticating a user.
+ </summary>
+ <returns>
+ True if the endpoint should be considered.
+ False to remove it from the pool of acceptable providers.
+ </returns>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.Token">
+ <summary>
+ A state-containing bit of non-confidential data that is sent to the
+ user agent as part of the return_to URL so we can read from it later.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.Token.Serialize(DotNetOpenId.RelyingParty.INonceStore)">
+ <summary>
+ Serializes this <see cref="T:DotNetOpenId.RelyingParty.Token"/> instance as a string that can be
+ included as part of a return_to variable in a querystring.
+ This string is cryptographically signed to protect against tampering.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.Token.Deserialize(System.String,DotNetOpenId.RelyingParty.INonceStore)">
+ <summary>
+ Deserializes a token returned to us from the provider and verifies its integrity.
+ </summary>
+ <remarks>
+ As part of deserialization, the signature is verified to check
+ for tampering, and the nonce (if included by the RP) is also checked.
+ If no signature is present (due to stateless mode), the endpoint is verified
+ by discovery (slow but secure).
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.Token.persistNonce(DotNetOpenId.RelyingParty.ServiceEndpoint,DotNetOpenId.RelyingParty.INonceStore)">
+ <summary>
+ Whether a relying party-side nonce should be used to protect
+ against replay attacks.
+ </summary>
+ <remarks>
+ When communicating with an OP using OpenID 2.0, the provider takes
+ care of the nonce, so we don't have to.
+
+ If operating under stateless mode, nonces can't be used on the RP
+ side, so we rely on the Provider to be using some nonce mechanism.
+ In OpenID 2.0, this is guaranteed, but in 1.x it's just an
+ assumption, which allows for replay attacks if the assumption is false.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.Token.persistSignature(DotNetOpenId.RelyingParty.INonceStore)">
+ <summary>
+ Whether to sign a token.
+ </summary>
+ <remarks>
+ If an application store exists, we should sign the token. If it doesn't,
+ we haven't any means to keep a secret, so we can't sign the token.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.Token.verifyEndpointByDiscovery(DotNetOpenId.RelyingParty.ServiceEndpoint)">
+ <summary>
+ Performs discovery on the information in the token to detect any tampering.
+ </summary>
+ <remarks>
+ Manual re-discovery of a Claimed Identifier is the slow way to perform verification.
+ The best way is to check a signature on a deserialized token. That is the primary method,
+ but when stateless mode is used and no place exists to store a secret for signature
+ verification, this is the only alternative.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.Token.Nonce">
+ <summary>
+ This nonce will only be used if the provider is pre-2.0.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.HmacShaAssociation.GetSecretLength(DotNetOpenId.Protocol,System.String)">
+ <summary>
+ Returns the length of the shared secret (in bytes).
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.HmacShaAssociation.TryFindBestAssociation(DotNetOpenId.Protocol,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Boolean,System.String@,System.String@)">
+ <summary>
+ Looks for the longest hash length for a given protocol for which we have an association,
+ and perhaps a matching Diffie-Hellman session type.
+ </summary>
+ <param name="protocol">The OpenID version that dictates which associations are available.</param>
+ <param name="minimumHashSizeInBits">The minimum required hash length given security settings.</param>
+ <param name="maximumHashSizeInBits">The maximum hash length to even attempt. Useful for the RP side where we support SHA512 but most OPs do not -- why waste time trying?</param>
+ <param name="requireMatchingDHSessionType">True for HTTP associations, False for HTTPS associations.</param>
+ <param name="associationType">The resulting association type's well known protocol name. (i.e. HMAC-SHA256)</param>
+ <param name="sessionType">The resulting session type's well known protocol name, if a matching one is available. (i.e. DH-SHA256)</param>
+ </member>
+ <member name="P:DotNetOpenId.HmacShaAssociation.HmacSha.SecretLength">
+ <summary>
+ The size of the hash (in bytes).
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.HttpEncoding">
+ <summary>
+ Conversion to and from the HTTP Encoding defined by
+ OpenID Authentication 2.0 section 4.1.2.
+ http://openid.net/specs/openid-authentication-2_0.html#anchor4
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.AssociationRelyingPartyType">
+ <summary>
+ An enumeration that can specify how a given <see cref="T:DotNetOpenId.Association"/> is used.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.AssociationRelyingPartyType.Smart">
+ <summary>
+ The <see cref="T:DotNetOpenId.Association"/> manages a shared secret between
+ Provider and Relying Party sites that allows the RP to verify
+ the signature on a message from an OP.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.AssociationRelyingPartyType.Dumb">
+ <summary>
+ The <see cref="T:DotNetOpenId.Association"/> manages a secret known alone by
+ a Provider that allows the Provider to verify its own signatures
+ for "dumb" (stateless) relying parties.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.KeyValueFormConformanceLevel">
+ <summary>
+ Indicates the level of strictness to require when decoding a
+ Key-Value Form encoded dictionary.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.KeyValueFormConformanceLevel.Loose">
+ <summary>
+ Be as forgiving as possible to errors made while encoding.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.KeyValueFormConformanceLevel.OpenId11">
+ <summary>
+ Allow for certain errors in encoding attributable to ambiguities
+ in the OpenID 1.1 spec's description of the encoding.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.KeyValueFormConformanceLevel.OpenId20">
+ <summary>
+ The strictest mode. The decoder requires the encoded dictionary
+ to be in strict compliance with OpenID 2.0's description of
+ the encoding.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.KeyValueFormEncoding">
+ <summary>
+ Conversion to and from the Key-Value Form Encoding defined by
+ OpenID Authentication 2.0 section 4.1.1.
+ http://openid.net/specs/openid-authentication-2_0.html#anchor4
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.KeyValueFormEncoding.GetBytes(System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Encodes key/value pairs to Key-Value Form.
+ Do not use for dictionaries of signed fields! Instead use the overload
+ that accepts a list of in-order keys.
+ </summary>
+ <returns>The UTF8 byte array.</returns>
+ <remarks>
+ Because dictionaries do not guarantee ordering,
+ encoding a dictionary without an explicitly given key order
+ is useless in OpenID scenarios where a signature must match.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.KeyValueFormEncoding.GetBytes(System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IList{System.String})">
+ <summary>
+ Encodes key/value pairs to Key-Value Form.
+ </summary>
+ <param name="dictionary">
+ The dictionary of key/value pairs to convert to a byte stream.
+ </param>
+ <param name="keyOrder">
+ The order in which to encode the key/value pairs.
+ Useful in scenarios where a byte[] must be exactly reproduced.
+ </param>
+ <returns>The UTF8 byte array.</returns>
+ </member>
+ <member name="M:DotNetOpenId.KeyValueFormEncoding.GetDictionary(System.IO.Stream)">
+ <summary>
+ Decodes bytes in Key-Value Form to key/value pairs.
+ </summary>
+ <param name="data">The stream of Key-Value Form encoded bytes.</param>
+ <returns>The deserialized dictionary.</returns>
+ </member>
+ <member name="T:DotNetOpenId.OpenIdException">
+ <summary>
+ A message did not conform to the OpenID protocol, or
+ some other processing error occurred.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.OpenIdException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+ <summary>
+ Instantiates an <see cref="T:DotNetOpenId.OpenIdException"/> based on deserialized data.
+ </summary>
+ <param name="info"></param>
+ <param name="context"></param>
+ </member>
+ <member name="M:DotNetOpenId.OpenIdException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+ <summary>
+ Serializes the exception details for binary transmission.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.OpenIdException.Identifier">
+ <summary>
+ An Identifier (claimed or local provider) that was being processed when
+ the exception was thrown.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.OpenIdException.IsDirectMessage">
+ <summary>
+ Gets whether this exception was generated on an OP as the result of processing a message
+ that came directly from the RP.
+ </summary>
+ <remarks>
+ This is useful because it allows us to determine what kind of error reporting we'll send
+ in the HTTP response.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.OpenIdException.EncodedFields">
+ <summary>
+ Fields that should be encoded for processing when this exception
+ is thrown by a Provider and the details should be passed to the
+ relying party.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.OpenIdException.RedirectUrl">
+ <summary>
+ The URL that the exception details should be forwarded to.
+ This is used when a Provider throws an exception that a relying
+ party may find helpful in diagnosing the failure.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.Request">
+ <summary>
+ Represents any OpenId-protocol request that may come to the provider.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.IRequest">
+ <summary>
+ Represents an incoming OpenId authentication request.
+ </summary>
+ <remarks>
+ Requests may be infrastructural to OpenID and allow auto-responses, or they may
+ be authentication requests where the Provider site has to make decisions based
+ on its own user database and policies.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IRequest.AddResponseExtension(DotNetOpenId.Extensions.IExtensionResponse)">
+ <summary>
+ Adds an extension to the response to send to the relying party.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IRequest.GetExtension``1">
+ <summary>
+ Gets an extension sent from the relying party.
+ </summary>
+ <typeparam name="T">The type of the extension.</typeparam>
+ <returns>An instance of the extension initialized with values passed in with the request.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IRequest.GetExtension(System.Type)">
+ <summary>
+ Gets an extension sent from the relying party.
+ </summary>
+ <param name="extensionType">The type of the extension.</param>
+ <returns>An instance of the extension initialized with values passed in with the request.</returns>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IRequest.IsResponseReady">
+ <summary>
+ Returns true if the Response is ready to be sent to the user agent.
+ Returns false if there are properties that must be set on this
+ request instance before the response can be sent.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IRequest.Response">
+ <summary>
+ Gets the response to send to the user agent.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Provider.Request.Protocol">
+ <summary>
+ The detected protocol of the calling OpenId relying party.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.Request.IsOpenIdRequest(System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Tests whether a given dictionary represents an incoming OpenId request.
+ </summary>
+ <param name="query">The name/value pairs in the querystring or Form submission. Cannot be null.</param>
+ <returns>True if the request is an OpenId request, false otherwise.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Provider.Request.CreateRequest(DotNetOpenId.Provider.OpenIdProvider)">
+ <summary>
+ Creates the appropriate Request-derived type based on the request dictionary.
+ </summary>
+ <param name="provider">The Provider instance that called this method.</param>
+ <returns>A Request-derived type appropriate for this stage in authentication.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Provider.Request.InvalidateResponse">
+ <summary>
+ Called whenever a property changes that would cause the response to need to be
+ regenerated if it had already been generated.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.Request.getExtension(DotNetOpenId.Extensions.IExtensionRequest)">
+ <summary>
+ Attempts to load an extension from an OpenId message.
+ </summary>
+ <param name="extension">The extension to attempt to load.</param>
+ <returns>
+ True if the extension was found in the message and successfully loaded.
+ False otherwise.
+ </returns>
+ </member>
+ <member name="P:DotNetOpenId.Provider.Request.OutgoingExtensions">
+ <summary>
+ Extension arguments to pass to the Relying Party.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.Request.IncomingExtensions">
+ <summary>
+ Extension arguments received from the Relying Party.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.Request.RelyingPartyVersion">
+ <summary>
+ Gets the version of OpenID being used by the relying party that sent the request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.Request.IsResponseReady">
+ <summary>
+ Indicates whether this request has all the information necessary to formulate a response.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.Request.Response">
+ <summary>
+ The authentication response to be sent to the user agent or the calling
+ OpenId consumer.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.IAuthenticationRequest">
+ <summary>
+ Instances of this interface represent incoming authentication requests.
+ This interface provides the details of the request and allows setting
+ the response.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IAuthenticationRequest.SetClaimedIdentifierFragment(System.String)">
+ <summary>
+ Adds an optional fragment (#fragment) portion to the ClaimedIdentifier.
+ Useful for identifier recycling.
+ </summary>
+ <param name="fragment">
+ Should not include the # prefix character as that will be added internally.
+ May be null or the empty string to clear a previously set fragment.
+ </param>
+ <remarks>
+ <para>Unlike the <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.ClaimedIdentifier"/> property, which can only be set if
+ using directed identity, this method can be called on any URI claimed identifier.</para>
+ <para>Because XRI claimed identifiers (the canonical IDs) are never recycled,
+ this method should<i>not</i> be called for XRIs.</para>
+ </remarks>
+ <exception cref="T:System.InvalidOperationException">Thrown when this method is called on an XRI.</exception>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.RelyingPartyVersion">
+ <summary>
+ Gets the version of OpenID being used by the relying party that sent the request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.Immediate">
+ <summary>
+ Whether the consumer demands an immediate response.
+ If false, the consumer is willing to wait for the identity provider
+ to authenticate the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.Realm">
+ <summary>
+ The URL the consumer site claims to use as its 'base' address.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.IsReturnUrlDiscoverable">
+ <summary>
+ Whether verification of the return URL claimed by the Relying Party
+ succeeded.
+ </summary>
+ <remarks>
+ Return URL verification is only attempted if this property is queried.
+ The result of the verification is cached per request so calling this
+ property getter multiple times in one request is not a performance hit.
+ See OpenID Authentication 2.0 spec section 9.2.1.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.IsDirectedIdentity">
+ <summary>
+ Whether the Provider should help the user select a Claimed Identifier
+ to send back to the relying party.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.LocalIdentifier">
+ <summary>
+ The Local Identifier to this OpenID Provider of the user attempting
+ to authenticate. Check <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.IsDirectedIdentity"/> to see if
+ this value is valid.
+ </summary>
+ <remarks>
+ This may or may not be the same as the Claimed Identifier that the user agent
+ originally supplied to the relying party. The Claimed Identifier
+ endpoint may be delegating authentication to this provider using
+ this provider's local id, which is what this property contains.
+ Use this identifier when looking up this user in the provider's user account
+ list.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.ClaimedIdentifier">
+ <summary>
+ The identifier that the user agent is claiming at the relying party site.
+ Check <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.IsDirectedIdentity"/> to see if this value is valid.
+ </summary>
+ <remarks>
+ This will not be the same as this provider's local identifier for the user
+ if the user has set up his/her own identity page that points to this
+ provider for authentication.
+ The provider may use this identifier for displaying to the user when
+ asking for the user's permission to authenticate to the relying party.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IAuthenticationRequest.IsAuthenticated">
+ <summary>
+ Gets/sets whether the provider has determined that the
+ <see cref="P:DotNetOpenId.Provider.IAuthenticationRequest.ClaimedIdentifier"/> belongs to the currently logged in user
+ and wishes to share this information with the consumer.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs">
+ <summary>
+ The event arguments passed to the <see cref="E:DotNetOpenId.Provider.IdentityEndpoint.NormalizeUri"/> event handler.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.UserSuppliedIdentifier">
+ <summary>
+ Gets or sets the portion of the incoming page request URI that is relevant to normalization.
+ </summary>
+ <remarks>
+ This identifier should be used to look up the user whose identity page is being queried.
+ It MAY be set in case some clever web server URL rewriting is taking place that ASP.NET
+ does not know about but your site does. If this is the case this property should be set
+ to whatever the original request URL was.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.NormalizedIdentifier">
+ <summary>
+ Gets/sets the normalized form of the user's identifier, according to the host site's policy.
+ </summary>
+ <remarks>
+ <para>This should be set to some constant value for an individual user.
+ For example, if <see cref="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.UserSuppliedIdentifier"/> indicates that identity page
+ for "BOB" is being called up, then the following things should be considered:</para>
+ <list>
+ <item>Normalize the capitalization of the URL: for example, change http://provider/BOB to
+ http://provider/bob.</item>
+ <item>Switch to HTTPS is it is offered: change http://provider/bob to https://provider/bob.</item>
+ <item>Strip off the query string if it is not part of the canonical identity:
+ https://provider/bob?timeofday=now becomes https://provider/bob</item>
+ <item>Ensure that any trailing slash is either present or absent consistently. For example,
+ change https://provider/bob/ to https://provider/bob.</item>
+ </list>
+ <para>When this property is set, the <see cref="T:DotNetOpenId.Provider.IdentityEndpoint"/> control compares it to
+ the request that actually came in, and redirects the browser to use the normalized identifier
+ if necessary.</para>
+ <para>Using the normalized identifier in the request is <i>very</i> important as it
+ helps the user maintain a consistent identity across sites and across site visits to an individual site.
+ For example, without normalizing the URL, Bob might sign into a relying party site as
+ http://provider/bob one day and https://provider/bob the next day, and the relying party
+ site <i>should</i> interpret Bob as two different people because the URLs are different.
+ By normalizing the URL at the Provider's identity page for Bob, whichever URL Bob types in
+ from day-to-day gets redirected to a normalized form, so Bob is seen as the same person
+ all the time, which is of course what Bob wants.
+ </para>
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Provider.IdentityEndpoint">
+ <summary>
+ An ASP.NET control that manages the OpenID identity advertising tags
+ of a user's Identity Page that allow a relying party web site to discover
+ how to authenticate a user.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.XrdsPublisher">
+ <summary>
+ An ASP.NET control that advertises an XRDS document and even responds to specially
+ crafted requests to retrieve it.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.XrdsPublisher.OnLoad(System.EventArgs)">
+ <summary>
+ Detects YADIS requests for the XRDS document and responds immediately
+ if <see cref="P:DotNetOpenId.XrdsPublisher.XrdsAutoAnswer"/> is true.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.XrdsPublisher.Render(System.Web.UI.HtmlTextWriter)">
+ <summary>
+ Renders the HTTP Header and/or HTML HEAD tags.
+ </summary>
+ <param name="writer"></param>
+ </member>
+ <member name="P:DotNetOpenId.XrdsPublisher.XrdsUrl">
+ <summary>
+ The location of the XRDS document.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.XrdsPublisher.XrdsAdvertisement">
+ <summary>
+ Where the XRDS document URL is advertised in the web response.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.XrdsPublisher.XrdsAutoAnswer">
+ <summary>
+ Gets/sets whether a specially crafted YADIS search for an XRDS document is
+ immediately answered by this control.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.XrdsPublisher.Enabled">
+ <summary>
+ Sets/gets whether the XRDS document is advertised.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IdentityEndpoint.OnNormalize">
+ <summary>
+ Checks the incoming request and invokes a browser redirect if the URL has not been normalized.
+ </summary>
+ <seealso cref="P:DotNetOpenId.Provider.IdentityEndpointNormalizationEventArgs.NormalizedIdentifier"/>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IdentityEndpoint.bestGuessNormalization(System.Uri)">
+ <summary>
+ Normalizes the URL by making the path and query lowercase, and trimming trailing slashes.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IdentityEndpoint.OnLoad(System.EventArgs)">
+ <summary>
+ Checks the incoming request and invokes a browser redirect if the URL has not been normalized.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.IdentityEndpoint.Render(System.Web.UI.HtmlTextWriter)">
+ <summary>
+ Renders OpenID identity tags.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IdentityEndpoint.ProviderVersion">
+ <summary>
+ The OpenID version supported by the provider.
+ If multiple versions are supported, this should be set to the latest
+ version that DotNetOpenId and the Provider both support.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IdentityEndpoint.ProviderEndpointUrl">
+ <summary>
+ The Provider URL that processes OpenID requests.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IdentityEndpoint.ProviderLocalIdentifier">
+ <summary>
+ The Identifier that is controlled by the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.IdentityEndpoint.AutoNormalizeRequest">
+ <summary>
+ Whether every incoming request will be checked for normalized form and redirected if it is not.
+ </summary>
+ <remarks>
+ <para>If set to true (and it should be), you should also handle the <see cref="E:DotNetOpenId.Provider.IdentityEndpoint.NormalizeUri"/>
+ event and apply your own policy for normalizing the URI.</para>
+ If multiple <see cref="T:DotNetOpenId.Provider.IdentityEndpoint"/> controls are on a single page (to support
+ multiple versions of OpenID for example) then only one of them should have this
+ property set to true.
+ </remarks>
+ </member>
+ <member name="E:DotNetOpenId.Provider.IdentityEndpoint.NormalizeUri">
+ <summary>
+ Fired at each page request so the host web site can return the normalized
+ version of the request URI.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.OpenIdProvider">
+ <summary>
+ Offers services for a web page that is acting as an OpenID identity server.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Provider.OpenIdProvider.RequestUrl">
+ <summary>
+ The incoming request's Url.
+ </summary>
+ <remarks>
+ This is used for certain security checks internally. It should not
+ be used for its Query property, as it will be irrelevant on POST requests.
+ Instead, use the OpenIdProvider.Query field.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.Provider.OpenIdProvider.Query">
+ <summary>
+ The query of the incoming request.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.OpenIdProvider.#ctor">
+ <summary>
+ Constructs an OpenId server that uses the HttpApplication dictionary as
+ its association store and detects common settings.
+ </summary>
+ <remarks>
+ This method requires a current ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Provider.OpenIdProvider.#ctor(DotNetOpenId.IAssociationStore{DotNetOpenId.AssociationRelyingPartyType},System.Uri,System.Uri,System.Collections.Specialized.NameValueCollection)">
+ <summary>
+ Constructs an OpenId server that uses a given query and IAssociationStore.
+ </summary>
+ <param name="store">
+ The application-level store where associations with OpenId consumers will be preserved.
+ </param>
+ <param name="providerEndpoint">
+ The Internet-facing URL that responds to OpenID requests.
+ </param>
+ <param name="requestUrl">The incoming request URL.</param>
+ <param name="query">
+ The name/value pairs that came in on the
+ QueryString of a GET request or in the entity of a POST request.
+ For example: (Request.HttpMethod == "GET" ? Request.QueryString : Request.Form).
+ </param>
+ </member>
+ <member name="M:DotNetOpenId.Provider.OpenIdProvider.decodeRequest">
+ <summary>
+ Decodes an incoming web request in to a <see cref="P:DotNetOpenId.Provider.OpenIdProvider.Request"/>.
+ </summary>
+ <returns>A Request object, or null if the given query doesn't represent an OpenId request.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Provider.OpenIdProvider.PrepareUnsolicitedAssertion(DotNetOpenId.Realm,DotNetOpenId.Identifier,DotNetOpenId.Identifier)">
+ <summary>
+ Allows a Provider to send an identity assertion on behalf of one
+ of its members in order to redirect the member to a relying party
+ web site and log him/her in immediately in one uninterrupted step.
+ </summary>
+ <param name="relyingParty">
+ The URL of the relying party web site.
+ This will typically be the home page, but may be a longer URL if
+ that Relying Party considers the scope of its realm to be more specific.
+ The URL provided here must allow discovery of the Relying Party's
+ XRDS document that advertises its OpenID RP endpoint.
+ </param>
+ <param name="claimedIdentifier">
+ The Identifier you are asserting your member controls.
+ </param>
+ <param name="localIdentifier">
+ The Identifier you know your user by internally. This will typically
+ be the same as <paramref name="claimedIdentifier"/>.
+ </param>
+ <returns>
+ An <see cref="T:DotNetOpenId.IResponse"/> object describing the HTTP response to send
+ the user agent to allow the redirect with assertion to happen.
+ </returns>
+ </member>
+ <member name="P:DotNetOpenId.Provider.OpenIdProvider.Protocol">
+ <summary>
+ The version of OpenId being used by the Relying Party
+ sending the incoming request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.OpenIdProvider.Endpoint">
+ <summary>
+ The provider URL that responds to OpenID requests.
+ </summary>
+ <remarks>
+ An auto-detect attempt is made if an ASP.NET HttpContext is available.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.OpenIdProvider.Settings">
+ <summary>
+ Provides access to the adjustable security settings of this instance
+ of <see cref="T:DotNetOpenId.Provider.OpenIdProvider"/>.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.OpenIdProvider.Request">
+ <summary>
+ Gets the incoming OpenID request if there is one, or null if none was detected.
+ </summary>
+ <remarks>
+ Requests may be infrastructural to OpenID and allow auto-responses, or they may
+ be authentication requests where the Provider site has to make decisions based
+ on its own user database and policies.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.OpenIdProvider.HttpApplicationStore">
+ <summary>
+ The standard state storage mechanism that uses ASP.NET's HttpApplication state dictionary
+ to store associations.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.OpenIdProvider.Configuration">
+ <summary>
+ Gets the relevant Configuration section for this OpenIdRelyingParty.
+ </summary>
+ <remarks>
+ This is not a static member because depending on the context within which we are
+ invoked, the configuration section might be different. (location tag, for example).
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Provider.PlainTextProviderSession">
+ <summary>
+ An object that knows how to handle association requests with no session type.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.DiffieHellmanProviderSession">
+ <summary>
+ An object that knows how to handle association requests with the Diffie-Hellman session type.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Response">
+ <summary>
+ A response to an OpenID request in terms the host web site can forward to the user agent.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Response.#ctor(System.Net.HttpStatusCode,System.Net.WebHeaderCollection,System.Byte[],DotNetOpenId.IEncodable)">
+ <param name="code">The HTTP status code.</param>
+ <param name="headers">The collection of any HTTP headers that should be included. Cannot be null, but can be an empty collection.</param>
+ <param name="body">The payload of the response, if any. Cannot be null, but can be an empty array.</param>
+ <param name="encodableMessage">
+ Used to assist testing to decipher the field contents of a Response.
+ </param>
+ </member>
+ <member name="M:DotNetOpenId.Response.Send">
+ <summary>
+ Sends this response to the user agent or OpenId consumer.
+ Execution of the current page terminates after this call.
+ </summary>
+ <remarks>
+ This method requires a current ASP.NET HttpContext.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Provider.ProviderEndpoint">
+ <summary>
+ An OpenID Provider control that automatically responds to certain
+ automated OpenID messages, and routes authentication requests to
+ custom code via an event handler.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.ProviderEndpoint.OnLoad(System.EventArgs)">
+ <summary>
+ Checks for incoming OpenID requests, responds to ones it can
+ respond to without policy checks, and fires events for custom
+ handling of the ones it cannot decide on automatically.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.ProviderEndpoint.OnAuthenticationChallenge(DotNetOpenId.Provider.IAuthenticationRequest)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.Provider.ProviderEndpoint.AuthenticationChallenge"/> event.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.ProviderEndpoint.PendingAuthenticationRequest">
+ <summary>
+ An incoming OpenID authentication request that has not yet been responded to.
+ </summary>
+ <remarks>
+ This request is stored in the ASP.NET Session state, so it will survive across
+ redirects, postbacks, and transfers. This allows you to authenticate the user
+ yourself, and confirm his/her desire to authenticate to the relying party site
+ before responding to the relying party's authentication request.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.ProviderEndpoint.Enabled">
+ <summary>
+ Whether or not this control should be listening for and responding
+ to incoming OpenID requests.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.ProviderEndpoint.CustomApplicationStore">
+ <summary>
+ A custom application store to use. Null to use the default.
+ </summary>
+ <remarks>
+ If set, this property must be set in each Page Load event
+ as it is not persisted across postbacks.
+ </remarks>
+ </member>
+ <member name="E:DotNetOpenId.Provider.ProviderEndpoint.AuthenticationChallenge">
+ <summary>
+ Fired when an incoming OpenID request is an authentication challenge
+ that must be responded to by the Provider web site according to its
+ own user database and policies.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.AuthenticationChallengeEventArgs">
+ <summary>
+ The event arguments that include details of the incoming request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.AuthenticationChallengeEventArgs.Request">
+ <summary>
+ The incoming authentication request.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.SimpleRegistration.Gender">
+ <summary>
+ Indicates the gender of a user.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.SimpleRegistration.Gender.Male">
+ <summary>
+ The user is male.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.SimpleRegistration.Gender.Female">
+ <summary>
+ The user is female.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse">
+ <summary>
+ A struct storing Simple Registration field values describing an
+ authenticating user.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.#ctor">
+ <summary>
+ Creates an instance of the <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> class.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.DotNetOpenId#Extensions#IExtensionResponse#Serialize(DotNetOpenId.Provider.IRequest)">
+ <summary>
+ Adds the values of this struct to an authentication response being prepared
+ by an OpenID Provider.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.op_Equality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse,DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse)">
+ <summary>
+ Tests equality of two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> objects.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.op_Inequality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse,DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse)">
+ <summary>
+ Tests inequality of two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> objects.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Equals(System.Object)">
+ <summary>
+ Tests equality of two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse"/> objects.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Nickname">
+ <summary>
+ The nickname the user goes by.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Email">
+ <summary>
+ The user's email address.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.MailAddress">
+ <summary>
+ A combination of the user's full name and email address.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.FullName">
+ <summary>
+ The full name of a user as a single string.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.BirthDate">
+ <summary>
+ The user's birthdate.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Gender">
+ <summary>
+ The gender of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.PostalCode">
+ <summary>
+ The zip code / postal code of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Country">
+ <summary>
+ The country of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Language">
+ <summary>
+ The primary/preferred language of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.Culture">
+ <summary>
+ A combination o the language and country of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsResponse.TimeZone">
+ <summary>
+ The user's timezone.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest">
+ <summary>
+ Carries the request/require/none demand state of the simple registration fields.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.SetProfileRequestFromList(System.Collections.Generic.ICollection{System.String},DotNetOpenId.Extensions.SimpleRegistration.DemandLevel)">
+ <summary>
+ Sets the profile request properties according to a list of
+ field names that might have been passed in the OpenId query dictionary.
+ </summary>
+ <param name="fieldNames">
+ The list of field names that should receive a given
+ <paramref name="requestLevel"/>. These field names should match
+ the OpenId specification for field names, omitting the 'openid.sreg' prefix.
+ </param>
+ <param name="requestLevel">The none/request/require state of the listed fields.</param>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.DotNetOpenId#Extensions#IExtensionRequest#Serialize(DotNetOpenId.RelyingParty.IAuthenticationRequest)">
+ <summary>
+ Adds a description of the information the relying party site would like
+ the Provider to include with a positive authentication assertion as an
+ extension to an authentication request.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.CreateResponse">
+ <summary>
+ Prepares a Simple Registration response extension that is compatible with the
+ version of Simple Registration used in the request message.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.ToString">
+ <summary>
+ Renders the requested information as a string.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.op_Equality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest,DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest)">
+ <summary>
+ Tests equality between two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest"/> structs.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.op_Inequality(DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest,DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest)">
+ <summary>
+ Tests inequality between two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest"/> structs.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Equals(System.Object)">
+ <summary>
+ Tests equality between two <see cref="T:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest"/> structs.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Nickname">
+ <summary>
+ The level of interest a relying party has in the nickname of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Email">
+ <summary>
+ The level of interest a relying party has in the email of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.FullName">
+ <summary>
+ The level of interest a relying party has in the full name of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.BirthDate">
+ <summary>
+ The level of interest a relying party has in the birthdate of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Gender">
+ <summary>
+ The level of interest a relying party has in the gender of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.PostalCode">
+ <summary>
+ The level of interest a relying party has in the postal code of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Country">
+ <summary>
+ The level of interest a relying party has in the Country of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.Language">
+ <summary>
+ The level of interest a relying party has in the language of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.TimeZone">
+ <summary>
+ The level of interest a relying party has in the time zone of the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Extensions.SimpleRegistration.ClaimsRequest.PolicyUrl">
+ <summary>
+ The URL the consumer site provides for the authenticating user to review
+ for how his claims will be used by the consumer web site.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.OpenIdLogin">
+ <summary>
+ An ASP.NET control providing a complete OpenID login experience.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.OpenIdTextBox">
+ <summary>
+ An ASP.NET control that provides a minimal text box that is OpenID-aware.
+ </summary>
+ <remarks>
+ This control offers greater UI flexibility than the <see cref="T:DotNetOpenId.RelyingParty.OpenIdLogin"/>
+ control, but requires more work to be done by the hosting web site to
+ assemble a complete login experience.
+ </remarks>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.UsePersistentCookieDefault">
+ <summary>
+ Default value of <see cref="P:DotNetOpenId.RelyingParty.OpenIdTextBox.UsePersistentCookie"/>.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.TabIndexDefault">
+ <summary>
+ Default value for <see cref="P:DotNetOpenId.RelyingParty.OpenIdTextBox.TabIndex"/> property.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.#ctor">
+ <summary>
+ Instantiates an <see cref="T:DotNetOpenId.RelyingParty.OpenIdTextBox"/> instance.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.CreateChildControls">
+ <summary>
+ Creates the text box control.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.InitializeControls">
+ <summary>
+ Initializes the text box control.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.ShouldBeFocused">
+ <summary>
+ Whether the text box should receive input focus when the web page appears.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.Focus">
+ <summary>
+ Sets the input focus to start on the text box when the page appears
+ in the user's browser.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnLoad(System.EventArgs)">
+ <summary>
+ Checks for incoming OpenID authentication responses and fires appropriate events.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnPreRender(System.EventArgs)">
+ <summary>
+ Prepares the text box to be rendered.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.RelyingParty.OpenIdTextBox.Request">
+ <summary>
+ The OpenID authentication request that is about to be sent.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.CreateRequest">
+ <summary>
+ Constructs the authentication request and returns it.
+ </summary>
+ <remarks>
+ <para>This method need not be called before calling the <see cref="M:DotNetOpenId.RelyingParty.OpenIdTextBox.LogOn"/> method,
+ but is offered in the event that adding extensions to the request is desired.</para>
+ <para>The Simple Registration extension arguments are added to the request
+ before returning if <see cref="P:DotNetOpenId.RelyingParty.OpenIdTextBox.EnableRequestProfile"/> is set to true.</para>
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.LogOn">
+ <summary>
+ Immediately redirects to the OpenID Provider to verify the Identifier
+ provided in the text box.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnLoggedIn(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.LoggedIn"/> event.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnFailed(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Failed"/> event.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnCanceled(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Canceled"/> event.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdTextBox.OnSetupRequired(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdTextBox.SetupRequired"/> event.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.WrappedTextBox">
+ <summary>
+ Gets the <see cref="T:System.Web.UI.WebControls.TextBox"/> control that this control wraps.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Text">
+ <summary>
+ The content of the text box.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RealmUrl">
+ <summary>
+ The OpenID <see cref="T:DotNetOpenId.Realm"/> of the relying party web site.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ImmediateMode">
+ <summary>
+ True if a Provider should reply immediately to the authentication request
+ without interacting with the user. False if the Provider can take time
+ to authenticate the user in order to complete an authentication attempt.
+ </summary>
+ <remarks>
+ Setting this to true is sometimes useful in AJAX scenarios. Setting this to
+ true can cause failed authentications when the user truly controls an
+ Identifier, but must complete an authentication step with the Provider before
+ the Provider will approve the login from this relying party.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Stateless">
+ <summary>
+ Controls whether stateless mode is used.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.CssClass">
+ <summary>
+ Gets/sets the CSS class assigned to the text box.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ShowLogo">
+ <summary>
+ Gets/sets whether to show the OpenID logo in the text box.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.UsePersistentCookie">
+ <summary>
+ Whether to send a persistent cookie upon successful
+ login so the user does not have to log in upon returning to this site.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Columns">
+ <summary>
+ The width of the text box in characters.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.TabIndex">
+ <summary>
+ The tab index of the text box control.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestNickname">
+ <summary>
+ Gets/sets your level of interest in receiving the user's nickname from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestEmail">
+ <summary>
+ Gets/sets your level of interest in receiving the user's email address from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestFullName">
+ <summary>
+ Gets/sets your level of interest in receiving the user's full name from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestBirthDate">
+ <summary>
+ Gets/sets your level of interest in receiving the user's birthdate from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestGender">
+ <summary>
+ Gets/sets your level of interest in receiving the user's gender from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestPostalCode">
+ <summary>
+ Gets/sets your level of interest in receiving the user's postal code from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestCountry">
+ <summary>
+ Gets/sets your level of interest in receiving the user's country from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestLanguage">
+ <summary>
+ Gets/sets your level of interest in receiving the user's preferred language from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequestTimeZone">
+ <summary>
+ Gets/sets your level of interest in receiving the user's time zone from the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.PolicyUrl">
+ <summary>
+ Gets/sets the URL to your privacy policy page that describes how
+ claims will be used and/or shared.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.EnableRequestProfile">
+ <summary>
+ Turns the entire Simple Registration extension on or off.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.RequireSsl">
+ <summary>
+ Turns on high security mode, requiring the full authentication pipeline to be protected by SSL.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.CustomApplicationStore">
+ <summary>
+ A custom application store to use, or null to use the default.
+ </summary>
+ <remarks>
+ If set, this property must be set in each Page Load event
+ as it is not persisted across postbacks.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ForeColor">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BackColor">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BorderColor">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BorderWidth">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.BorderStyle">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Font">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Height">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.Width">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.ToolTip">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.SkinID">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdTextBox.EnableTheming">
+ <summary>
+ Unused property.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.LoggedIn">
+ <summary>
+ Fired upon completion of a successful login.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Failed">
+ <summary>
+ Fired when a login attempt fails.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.Canceled">
+ <summary>
+ Fired when an authentication attempt is canceled at the OpenID Provider.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.SetupRequired">
+ <summary>
+ Fired when an Immediate authentication attempt fails, and the Provider suggests using non-Immediate mode.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdTextBox.TextChanged">
+ <summary>
+ Occurs when the content of the text box changes between posts to the server.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.CreateChildControls">
+ <summary>
+ Creates the child controls.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.InitializeControls">
+ <summary>
+ Initializes the child controls.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.Render(System.Web.UI.HtmlTextWriter)">
+ <summary>
+ Customizes HTML rendering of the control.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.RenderChildren(System.Web.UI.HtmlTextWriter)">
+ <summary>
+ Renders the child controls.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.OnLoggingIn">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdLogin.LoggingIn"/> event.
+ </summary>
+ <returns>
+ Returns whether the login should proceed. False if some event handler canceled the request.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdLogin.OnRememberMeChanged">
+ <summary>
+ Fires the <see cref="E:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeChanged"/> event.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.LabelText">
+ <summary>
+ The caption that appears before the text box.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ExamplePrefix">
+ <summary>
+ The text that introduces the example OpenID url.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ExampleUrl">
+ <summary>
+ The example OpenID Identifier to display to the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RequiredText">
+ <summary>
+ The text to display if the user attempts to login without providing an Identifier.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.UriFormatText">
+ <summary>
+ The text to display if the user provides an invalid form for an Identifier.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.UriValidatorEnabled">
+ <summary>
+ Whether to perform Identifier format validation prior to an authentication attempt.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterText">
+ <summary>
+ The text of the link users can click on to obtain an OpenID.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterUrl">
+ <summary>
+ The URL to link users to who click the link to obtain a new OpenID.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterToolTip">
+ <summary>
+ The text of the tooltip to display when the user hovers over the link to obtain a new OpenID.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RegisterVisible">
+ <summary>
+ Whether to display a link to allow users to easily obtain a new OpenID.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ButtonText">
+ <summary>
+ The text that appears on the button that initiates login.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeText">
+ <summary>
+ The text of the "Remember Me" checkbox.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeVisible">
+ <summary>
+ Whether the "Remember Me" checkbox should be displayed.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMe">
+ <summary>
+ Whether a successful authentication should result in a persistent
+ cookie being saved to the browser.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.TabIndex">
+ <summary>
+ The starting tab index to distribute across the controls.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ButtonToolTip">
+ <summary>
+ The tooltip to display when the user hovers over the login button.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.ValidationGroup">
+ <summary>
+ The validation group that the login button and text box validator belong to.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.IdSelectorIdentifier">
+ <summary>
+ The unique hash string that ends your idselector.com account.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdLogin.UsePersistentCookie">
+ <summary>
+ Whether a FormsAuthentication cookie should persist across user sessions.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdLogin.LoggingIn">
+ <summary>
+ Fired after the user clicks the log in button, but before the authentication
+ process begins. Offers a chance for the web application to disallow based on
+ OpenID URL before redirecting the user to the OpenID Provider.
+ </summary>
+ </member>
+ <member name="E:DotNetOpenId.RelyingParty.OpenIdLogin.RememberMeChanged">
+ <summary>
+ Fired when the Remember Me checkbox is changed by the user.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.OpenIdEventArgs">
+ <summary>
+ The event details passed to event handlers.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdEventArgs.#ctor(DotNetOpenId.RelyingParty.IAuthenticationRequest)">
+ <summary>
+ Constructs an object with minimal information of an incomplete or failed
+ authentication attempt.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.OpenIdEventArgs.#ctor(DotNetOpenId.RelyingParty.IAuthenticationResponse)">
+ <summary>
+ Constructs an object with information on a completed authentication attempt
+ (whether that attempt was successful or not).
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.Cancel">
+ <summary>
+ Cancels the OpenID authentication and/or login process.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.ClaimedIdentifier">
+ <summary>
+ The Identifier the user is claiming to own. Or null if the user
+ is using Directed Identity.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.IsDirectedIdentity">
+ <summary>
+ Whether the user has selected to let his Provider determine
+ the ClaimedIdentifier to use as part of successful authentication.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.Request">
+ <summary>
+ Gets the details of the OpenID authentication request,
+ and allows for adding extensions.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.OpenIdEventArgs.Response">
+ <summary>
+ Gets the details of the OpenID authentication response.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel">
+ <summary>
+ Specifies what level of interest a relying party has in obtaining the value
+ of a given field offered by the Simple Registration extension.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel.NoRequest">
+ <summary>
+ The relying party has no interest in obtaining this field.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel.Request">
+ <summary>
+ The relying party would like the value of this field, but wants
+ the Provider to display the field to the user as optionally provided.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Extensions.SimpleRegistration.DemandLevel.Require">
+ <summary>
+ The relying party considers this a required field as part of
+ authentication. The Provider and/or user agent MAY still choose to
+ not provide the value of the field however, according to the
+ Simple Registration extension specification.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.RelyingParty.ServiceEndpoint">
+ <summary>
+ Represents information discovered about a user-supplied Identifier.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.ServiceEndpoint.#ctor(DotNetOpenId.Identifier,DotNetOpenId.Identifier,System.Uri,DotNetOpenId.Identifier,DotNetOpenId.Protocol)">
+ <summary>
+ Used for deserializing <see cref="T:DotNetOpenId.RelyingParty.ServiceEndpoint"/> from authentication responses.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.ServiceEndpoint.Serialize(System.IO.TextWriter)">
+ <summary>
+ Saves the discovered information about this endpoint
+ for later comparison to validate assertions.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.RelyingParty.ServiceEndpoint.Deserialize(System.IO.TextReader)">
+ <summary>
+ Reads previously discovered information about an endpoint
+ from a solicited authentication assertion for validation.
+ </summary>
+ <returns>
+ A <see cref="T:DotNetOpenId.RelyingParty.ServiceEndpoint"/> object that has everything
+ except the <see cref="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderSupportedServiceTypeUris"/>
+ deserialized.
+ </returns>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderEndpoint">
+ <summary>
+ The URL which accepts OpenID Authentication protocol messages.
+ </summary>
+ <remarks>
+ Obtained by performing discovery on the User-Supplied Identifier.
+ This value MUST be an absolute HTTP or HTTPS URL.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.IsSecure">
+ <summary>
+ Returns true if the <see cref="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderEndpoint"/> is using an encrypted channel.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.UserSuppliedIdentifier">
+ <summary>
+ An Identifier that was presented by the end user to the Relying Party,
+ or selected by the user at the OpenID Provider.
+ During the initiation phase of the protocol, an end user may enter
+ either their own Identifier or an OP Identifier. If an OP Identifier
+ is used, the OP may then assist the end user in selecting an Identifier
+ to share with the Relying Party.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ClaimedIdentifier">
+ <summary>
+ The Identifier that the end user claims to own.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderLocalIdentifier">
+ <summary>
+ An alternate Identifier for an end user that is local to a
+ particular OP and thus not necessarily under the end user's
+ control.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.FriendlyIdentifierForDisplay">
+ <summary>
+ Supports the <see cref="P:DotNetOpenId.RelyingParty.IAuthenticationResponse.FriendlyIdentifierForDisplay"/> property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.ProviderSupportedServiceTypeUris">
+ <summary>
+ Gets the list of services available at this OP Endpoint for the
+ claimed Identifier. May be null.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.Protocol">
+ <summary>
+ Gets the OpenID protocol used by the Provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.DotNetOpenId#RelyingParty#IXrdsProviderEndpoint#ServicePriority">
+ <summary>
+ Gets the priority associated with this service that may have been given
+ in the XRDS document.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.RelyingParty.ServiceEndpoint.DotNetOpenId#RelyingParty#IXrdsProviderEndpoint#UriPriority">
+ <summary>
+ Gets the priority associated with the service endpoint URL.
+ </summary>
+ </member>
+ <member name="T:Org.Mentalis.Security.Cryptography.DHKeyGeneration">
+ <summary>
+ Defines the different Diffie-Hellman key generation methods.
+ </summary>
+ </member>
+ <member name="F:Org.Mentalis.Security.Cryptography.DHKeyGeneration.Random">
+ <summary>
+ Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods,
+ this method does not ensure that the selected prime offers an adequate security level.
+ </summary>
+ </member>
+ <member name="F:Org.Mentalis.Security.Cryptography.DHKeyGeneration.Static">
+ <summary>
+ Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you,
+ using these hard coded values is perfectly safe.
+ The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412].
+ This is the prefered key generation method, because it is very fast and very safe.
+ Because this method uses fixed values for the P and G parameters, not all bit sizes are supported.
+ The current implementation supports bit sizes of 768, 1024 and 1536.
+ </summary>
+ </member>
+ <member name="T:Org.Mentalis.Security.Cryptography.DHParameters">
+ <summary>
+ Represents the parameters of the Diffie-Hellman algorithm.
+ </summary>
+ </member>
+ <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.P">
+ <summary>
+ Represents the public <b>P</b> parameter of the Diffie-Hellman algorithm.
+ </summary>
+ </member>
+ <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.G">
+ <summary>
+ Represents the public <b>G</b> parameter of the Diffie-Hellman algorithm.
+ </summary>
+ </member>
+ <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.X">
+ <summary>
+ Represents the private <b>X</b> parameter of the Diffie-Hellman algorithm.
+ </summary>
+ </member>
+ <member name="T:Org.Mentalis.Security.Cryptography.DiffieHellman">
+ <summary>
+ Defines a base class from which all Diffie-Hellman implementations inherit.
+ </summary>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.Create">
+ <summary>
+ Creates an instance of the default implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> algorithm.
+ </summary>
+ <returns>A new instance of the default implementation of DiffieHellman.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.Create(System.String)">
+ <summary>
+ Creates an instance of the specified implementation of <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.
+ </summary>
+ <param name="algName">The name of the implementation of DiffieHellman to use.</param>
+ <returns>A new instance of the specified implementation of DiffieHellman.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.#ctor">
+ <summary>
+ Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> instance.
+ </summary>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.CreateKeyExchange">
+ <summary>
+ When overridden in a derived class, creates the key exchange data.
+ </summary>
+ <returns>The key exchange data to be sent to the intended recipient.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.DecryptKeyExchange(System.Byte[])">
+ <summary>
+ When overridden in a derived class, extracts secret information from the key exchange data.
+ </summary>
+ <param name="keyEx">The key exchange data within which the secret information is hidden.</param>
+ <returns>The secret information derived from the key exchange data.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ExportParameters(System.Boolean)">
+ <summary>
+ When overridden in a derived class, exports the <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
+ </summary>
+ <param name="includePrivate"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
+ <returns>The parameters for Diffie-Hellman.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ImportParameters(Org.Mentalis.Security.Cryptography.DHParameters)">
+ <summary>
+ When overridden in a derived class, imports the specified <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
+ </summary>
+ <param name="parameters">The parameters for Diffie-Hellman.</param>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.FromXmlString(System.String)">
+ <summary>
+ Reconstructs a <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> object from an XML string.
+ </summary>
+ <param name="xmlString">The XML string to use to reconstruct the DiffieHellman object.</param>
+ <exception cref="T:System.Security.Cryptography.CryptographicException">One of the values in the XML string is invalid.</exception>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ToXmlString(System.Boolean)">
+ <summary>
+ Creates and returns an XML string representation of the current <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> object.
+ </summary>
+ <param name="includePrivateParameters"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
+ <returns>An XML string encoding of the current DiffieHellman object.</returns>
+ </member>
+ <member name="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged">
+ <summary>
+ Implements the Diffie-Hellman algorithm.
+ </summary>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor">
+ <summary>
+ Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
+ </summary>
+ <remarks>The default length of the shared secret is 1024 bits.</remarks>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Int32,System.Int32,Org.Mentalis.Security.Cryptography.DHKeyGeneration)">
+ <summary>
+ Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
+ </summary>
+ <param name="bitlen">The length, in bits, of the public P parameter.</param>
+ <param name="l">The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size.</param>
+ <param name="keygen">One of the <see cref="T:Org.Mentalis.Security.Cryptography.DHKeyGeneration"/> values.</param>
+ <remarks>The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.<br/>The size of the private value will be one fourth of the bit length specified.</remarks>
+ <exception cref="T:System.ArgumentException">The specified bit length is invalid.</exception>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Byte[],System.Byte[],System.Byte[])">
+ <summary>
+ Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
+ </summary>
+ <param name="p">The P parameter of the Diffie-Hellman algorithm. This is a public parameter.</param>
+ <param name="g">The G parameter of the Diffie-Hellman algorithm. This is a public parameter.</param>
+ <param name="x">The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (<b>Nothing</b> in Visual Basic), a secret value of the default size will be generated.</param>
+ <exception cref="T:System.ArgumentNullException"><paramref name="p"/> or <paramref name="g"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
+ <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="p"/> or <paramref name="g"/> is invalid.</exception>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Byte[],System.Byte[],System.Int32)">
+ <summary>
+ Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
+ </summary>
+ <param name="p">The P parameter of the Diffie-Hellman algorithm.</param>
+ <param name="g">The G parameter of the Diffie-Hellman algorithm.</param>
+ <param name="l">The length, in bits, of the private value. If 0 is specified, the default value will be used.</param>
+ <exception cref="T:System.ArgumentNullException"><paramref name="p"/> or <paramref name="g"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException"><paramref name="l"/> is invalid.</exception>
+ <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="p"/> or <paramref name="g"/> is invalid.</exception>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.CreateKeyExchange">
+ <summary>
+ Creates the key exchange data.
+ </summary>
+ <returns>The key exchange data to be sent to the intended recipient.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.DecryptKeyExchange(System.Byte[])">
+ <summary>
+ Extracts secret information from the key exchange data.
+ </summary>
+ <param name="keyEx">The key exchange data within which the shared key is hidden.</param>
+ <returns>The shared key derived from the key exchange data.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.Dispose(System.Boolean)">
+ <summary>
+ Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.
+ </summary>
+ <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.ExportParameters(System.Boolean)">
+ <summary>
+ Exports the <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
+ </summary>
+ <param name="includePrivateParameters"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
+ <returns>The parameters for <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.</returns>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.ImportParameters(Org.Mentalis.Security.Cryptography.DHParameters)">
+ <summary>
+ Imports the specified <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
+ </summary>
+ <param name="parameters">The parameters for <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.</param>
+ <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="P"/> or <paramref name="G"/> is a null reference (<b>Nothing</b> in Visual Basic) -or- <paramref name="P"/> is not a prime number.</exception>
+ </member>
+ <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.Finalize">
+ <summary>
+ Releases the unmanaged resources used by the SymmetricAlgorithm.
+ </summary>
+ </member>
+ <member name="P:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.KeyExchangeAlgorithm">
+ <summary>
+ Gets the name of the key exchange algorithm.
+ </summary>
+ <value>The name of the key exchange algorithm.</value>
+ </member>
+ <member name="P:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.SignatureAlgorithm">
+ <summary>
+ Gets the name of the signature algorithm.
+ </summary>
+ <value>The name of the signature algorithm.</value>
+ </member>
+ <member name="F:Mono.Math.BigInteger.DEFAULT_LEN">
+ <summary>
+ Default length of a BigInteger in bytes
+ </summary>
+ </member>
+ <member name="F:Mono.Math.BigInteger.length">
+ <summary>
+ The Length of this BigInteger
+ </summary>
+ </member>
+ <member name="F:Mono.Math.BigInteger.data">
+ <summary>
+ The data for this BigInteger
+ </summary>
+ </member>
+ <member name="F:Mono.Math.BigInteger.smallPrimes">
+ <summary>
+ Table of primes below 2000.
+ </summary>
+ <remarks>
+ <para>
+ This table was generated using Mathematica 4.1 using the following function:
+ </para>
+ <para>
+ <code>
+ PrimeTable [x_] := Prime [Range [1, PrimePi [x]]]
+ PrimeTable [6000]
+ </code>
+ </para>
+ </remarks>
+ </member>
+ <member name="M:Mono.Math.BigInteger.genRandom(System.Int32,System.Security.Cryptography.RandomNumberGenerator)">
+ <summary>
+ Generates a new, random BigInteger of the specified length.
+ </summary>
+ <param name="bits">The number of bits for the new number.</param>
+ <param name="rng">A random number generator to use to obtain the bits.</param>
+ <returns>A random number of the specified length.</returns>
+ </member>
+ <member name="M:Mono.Math.BigInteger.genRandom(System.Int32)">
+ <summary>
+ Generates a new, random BigInteger of the specified length using the default RNG crypto service provider.
+ </summary>
+ <param name="bits">The number of bits for the new number.</param>
+ <returns>A random number of the specified length.</returns>
+ </member>
+ <member name="M:Mono.Math.BigInteger.randomize(System.Security.Cryptography.RandomNumberGenerator)">
+ <summary>
+ Randomizes the bits in "this" from the specified RNG.
+ </summary>
+ <param name="rng">A RNG.</param>
+ </member>
+ <member name="M:Mono.Math.BigInteger.randomize">
+ <summary>
+ Randomizes the bits in "this" from the default RNG.
+ </summary>
+ </member>
+ <member name="M:Mono.Math.BigInteger.testBit(System.UInt32)">
+ <summary>
+ Tests if the specified bit is 1.
+ </summary>
+ <param name="bitNum">The bit to test. The least significant bit is 0.</param>
+ <returns>True if bitNum is set to 1, else false.</returns>
+ </member>
+ <member name="M:Mono.Math.BigInteger.Normalize">
+ <summary>
+ Normalizes this by setting the length to the actual number of
+ uints used in data and by setting the sign to Sign.Zero if the
+ value of this is 0.
+ </summary>
+ </member>
+ <member name="M:Mono.Math.BigInteger.NextHightestPrime(Mono.Math.BigInteger)">
+ <summary>
+ Generates the smallest prime >= bi
+ </summary>
+ <param name="bi">A BigInteger</param>
+ <returns>The smallest prime >= bi. More mathematically, if bi is prime: bi, else Prime [PrimePi [bi] + 1].</returns>
+ </member>
+ <member name="M:Mono.Math.BigInteger.Incr2">
+ <summary>
+ Increments this by two
+ </summary>
+ </member>
+ <member name="T:Mono.Math.BigInteger.Kernel">
+ <summary>
+ Low level functions for the BigInteger
+ </summary>
+ </member>
+ <member name="M:Mono.Math.BigInteger.Kernel.AddSameSign(Mono.Math.BigInteger,Mono.Math.BigInteger)">
+ <summary>
+ Adds two numbers with the same sign.
+ </summary>
+ <param name="bi1">A BigInteger</param>
+ <param name="bi2">A BigInteger</param>
+ <returns>bi1 + bi2</returns>
+ </member>
+ <member name="M:Mono.Math.BigInteger.Kernel.Compare(Mono.Math.BigInteger,Mono.Math.BigInteger)">
+ <summary>
+ Compares two BigInteger
+ </summary>
+ <param name="bi1">A BigInteger</param>
+ <param name="bi2">A BigInteger</param>
+ <returns>The sign of bi1 - bi2</returns>
+ </member>
+ <member name="M:Mono.Math.BigInteger.Kernel.SingleByteDivideInPlace(Mono.Math.BigInteger,System.UInt32)">
+ <summary>
+ Performs n / d and n % d in one operation.
+ </summary>
+ <param name="n">A BigInteger, upon exit this will hold n / d</param>
+ <param name="d">The divisor</param>
+ <returns>n % d</returns>
+ </member>
+ <member name="M:Mono.Math.BigInteger.Kernel.Multiply(System.UInt32[],System.UInt32,System.UInt32,System.UInt32[],System.UInt32,System.UInt32,System.UInt32[],System.UInt32)">
+ <summary>
+ Multiplies the data in x [xOffset:xOffset+xLen] by
+ y [yOffset:yOffset+yLen] and puts it into
+ d [dOffset:dOffset+xLen+yLen].
+ </summary>
+ </member>
+ <member name="M:Mono.Math.BigInteger.Kernel.MultiplyMod2p32pmod(System.UInt32[],System.Int32,System.Int32,System.UInt32[],System.Int32,System.Int32,System.UInt32[],System.Int32,System.Int32)">
+ <summary>
+ Multiplies the data in x [xOffset:xOffset+xLen] by
+ y [yOffset:yOffset+yLen] and puts the low mod words into
+ d [dOffset:dOffset+mod].
+ </summary>
+ </member>
+ <member name="T:Mono.Math.Prime.ConfidenceFactor">
+ <summary>
+ A factor of confidence.
+ </summary>
+ </member>
+ <member name="F:Mono.Math.Prime.ConfidenceFactor.ExtraLow">
+ <summary>
+ Only suitable for development use, probability of failure may be greater than 1/2^20.
+ </summary>
+ </member>
+ <member name="F:Mono.Math.Prime.ConfidenceFactor.Low">
+ <summary>
+ Suitable only for transactions which do not require forward secrecy. Probability of failure about 1/2^40
+ </summary>
+ </member>
+ <member name="F:Mono.Math.Prime.ConfidenceFactor.Medium">
+ <summary>
+ Designed for production use. Probability of failure about 1/2^80.
+ </summary>
+ </member>
+ <member name="F:Mono.Math.Prime.ConfidenceFactor.High">
+ <summary>
+ Suitable for sensitive data. Probability of failure about 1/2^160.
+ </summary>
+ </member>
+ <member name="F:Mono.Math.Prime.ConfidenceFactor.ExtraHigh">
+ <summary>
+ Use only if you have lots of time! Probability of failure about 1/2^320.
+ </summary>
+ </member>
+ <member name="F:Mono.Math.Prime.ConfidenceFactor.Provable">
+ <summary>
+ Only use methods which generate provable primes. Not yet implemented.
+ </summary>
+ </member>
+ <member name="T:Mono.Math.Prime.Generator.NextPrimeFinder">
+ <summary>
+ Finds the next prime after a given number.
+ </summary>
+ </member>
+ <member name="M:Mono.Math.Prime.Generator.PrimeGeneratorBase.PostTrialDivisionTests(Mono.Math.BigInteger)">
+ <summary>
+ Performs primality tests on bi, assumes trial division has been done.
+ </summary>
+ <param name="bi">A BigInteger that has been subjected to and passed trial division</param>
+ <returns>False if bi is composite, true if it may be prime.</returns>
+ <remarks>The speed of this method is dependent on Confidence</remarks>
+ </member>
+ <member name="M:Mono.Math.Prime.PrimalityTests.RabinMillerTest(Mono.Math.BigInteger,Mono.Math.Prime.ConfidenceFactor)">
+ <summary>
+ Probabilistic prime test based on Rabin-Miller's test
+ </summary>
+ <param name="bi" type="BigInteger.BigInteger">
+ <para>
+ The number to test.
+ </para>
+ </param>
+ <param name="confidence" type="int">
+ <para>
+ The number of chosen bases. The test has at least a
+ 1/4^confidence chance of falsely returning True.
+ </para>
+ </param>
+ <returns>
+ <para>
+ True if "this" is a strong pseudoprime to randomly chosen bases.
+ </para>
+ <para>
+ False if "this" is definitely NOT prime.
+ </para>
+ </returns>
+ </member>
+ <member name="T:DotNetOpenId.Provider.AssociateRequest">
+ <summary>
+ A request to establish an association.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.AssociateRequest.CreateAssociationTypeHints(DotNetOpenId.Provider.OpenIdProvider)">
+ <summary>
+ This method is used to throw a carefully crafted exception that will end up getting
+ encoded as a response to the RP, given hints as to what
+ assoc_type and session_type args we support.
+ </summary>
+ <returns>A dictionary that should be passed to the OpenIdException
+ via the <see cref="F:DotNetOpenId.OpenIdException.ExtraArgsToReturn"/> property.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Provider.AssociateRequest.Answer">
+ <summary>
+ Respond to this request with an association.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.AssociateRequest.Mode">
+ <summary>
+ Returns the string "associate".
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.CheckAuthRequest">
+ <summary>
+ A request to verify the validity of a previous response.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Provider.CheckAuthRequest.Answer">
+ <summary>
+ Respond to this request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckAuthRequest.Mode">
+ <summary>
+ Gets the string "check_authentication".
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.CheckIdRequest">
+ <summary>
+ A request to confirm the identity of a user.
+ </summary>
+ <remarks>
+ This class handles requests for openid modes checkid_immediate and checkid_setup.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Provider.CheckIdRequest.SetClaimedIdentifierFragment(System.String)">
+ <summary>
+ Adds an optional fragment (#fragment) portion to a URI ClaimedIdentifier.
+ Useful for identifier recycling.
+ </summary>
+ <param name="fragment">
+ Should not include the # prefix character as that will be added internally.
+ May be null or the empty string to clear a previously set fragment.
+ </param>
+ <remarks>
+ <para>Unlike the <see cref="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier"/> property, which can only be set if
+ using directed identity, this method can be called on any URI claimed identifier.</para>
+ <para>Because XRI claimed identifiers (the canonical IDs) are never recycled,
+ this method should<i>not</i> be called for XRIs.</para>
+ </remarks>
+ <exception cref="T:System.InvalidOperationException">
+ Thrown when this method is called on an XRI, or on a directed identity request
+ before the <see cref="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier"/> property is set.</exception>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsAuthenticated">
+ <summary>
+ Gets/sets whether the provider has determined that the
+ <see cref="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier"/> belongs to the currently logged in user
+ and wishes to share this information with the consumer.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.Immediate">
+ <summary>
+ Whether the consumer demands an immediate response.
+ If false, the consumer is willing to wait for the identity provider
+ to authenticate the user.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.Realm">
+ <summary>
+ The URL the consumer site claims to use as its 'base' address.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsReturnUrlDiscoverable">
+ <summary>
+ Whether verification of the return URL claimed by the Relying Party
+ succeeded.
+ </summary>
+ <remarks>
+ This property will never throw a WebException or OpenIdException. Any failures
+ occuring during return URL verification results in a false value being returned.
+ Details regarding failure may be found in the trace log.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsDirectedIdentity">
+ <summary>
+ Whether the Provider should help the user select a Claimed Identifier
+ to send back to the relying party.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.LocalIdentifier">
+ <summary>
+ The user identifier used by this particular provider.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.ClaimedIdentifier">
+ <summary>
+ The identifier this user is claiming to control.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.ReturnTo">
+ <summary>
+ The URL to redirect the user agent to after the authentication attempt.
+ This must fall "under" the realm URL.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.IsResponseReady">
+ <summary>
+ Indicates whether this request has all the information necessary to formulate a response.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.CancelUrl">
+ <summary>
+ Get the URL to cancel this request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Provider.CheckIdRequest.SetupUrl">
+ <summary>
+ Encode this request as a URL to GET.
+ Only used in response to immediate auth requests from OpenID 1.x RPs.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.EncodingType.IndirectMessage">
+ <summary>
+ Data to be sent to the OP or RP site by telling the user agent to
+ redirect GET or form POST to a special URL with a payload of arguments.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.EncodingType.DirectResponse">
+ <summary>
+ Provider response data to be sent directly to the Relying Party site,
+ in response to a direct request initiated by the RP
+ (not indirect via the user agent).
+ Key-Value Form encoding will be used.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Provider.Signatory">
+ <summary>
+ Signs things.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Provider.Signatory.smartAssociationLifetime">
+ <summary>
+ The duration any association and secret key the Provider generates will be good for.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Provider.Signatory.dumbSecretLifetime">
+ <summary>
+ The duration a secret key used for signing dumb client requests will be good for.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.Provider.Signatory.store">
+ <summary>
+ The store for shared secrets.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.XrdsUrlLocations">
+ <summary>
+ The locations the YADIS protocol describes can contain a reference
+ to an XRDS document.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.XrdsUrlLocations.HttpHeader">
+ <summary>
+ Indicates XRDS document referencing from an HTTP protocol header (outside the HTML).
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.XrdsUrlLocations.HtmlMeta">
+ <summary>
+ Indicates XRDS document referencing from within an HTML page's &lt;HEAD&gt; tag.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.XrdsUrlLocations.Both">
+ <summary>
+ Indicates XRDS document referencing in both HTTP headers and HTML HEAD tags.
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Strings">
+ <summary>
+ A strongly-typed resource class, for looking up localized strings, etc.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ResourceManager">
+ <summary>
+ Returns the cached ResourceManager instance used by this class.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.Culture">
+ <summary>
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.AttributeAlreadyAdded">
+ <summary>
+ Looks up a localized string similar to An attribute with type URI &apos;{0}&apos; has already been added..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.AttributeTooManyValues">
+ <summary>
+ Looks up a localized string similar to Only {0} values for attribute &apos;{1}&apos; were requested, but {2} were supplied..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.BadAssociationPrivateData">
+ <summary>
+ Looks up a localized string similar to The private data supplied does not meet the requirements of any known Association type. Its length may be too short, or it may have been corrupted..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.CIDVerificationFailed">
+ <summary>
+ Looks up a localized string similar to XRI CanonicalID verification failed..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ClaimedIdentifierMustBeSetFirst">
+ <summary>
+ Looks up a localized string similar to The ClaimedIdentifier property must be set first..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.CreateRequestAlreadyCalled">
+ <summary>
+ Looks up a localized string similar to An authentication request has already been created using CreateRequest()..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.CurrentHttpContextRequired">
+ <summary>
+ Looks up a localized string similar to HttpContext.Current is null. There must be an ASP.NET request in process for this operation to succeed..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.EncryptionRequired">
+ <summary>
+ Looks up a localized string similar to An encrypted session using either HTTPS or Diffie-Hellman is required when establishing associations between relying parties and providers..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ExpectedBase64OpenIdQueryParameter">
+ <summary>
+ Looks up a localized string similar to OpenID parameter &apos;{0}&apos; was expected to be base64 encoded but is not..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ExpiredNonce">
+ <summary>
+ Looks up a localized string similar to The nonce has expired. It was good until {0} (UTC), and it is now {1} (UTC). If this looks wrong, check the server&apos;s clock, time zone and daylight savings settings..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ExplicitHttpUriSuppliedWithSslRequirement">
+ <summary>
+ Looks up a localized string similar to URI is not SSL yet requireSslDiscovery is set to true..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ExtensionAlreadyAddedWithSameTypeURI">
+ <summary>
+ Looks up a localized string similar to An extension sharing namespace &apos;{0}&apos; has already been added. Only one extension per namespace is allowed in a given request..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ExtensionParameterKeysWithoutPrefixExpected">
+ <summary>
+ Looks up a localized string similar to Extension parameter key &apos;{0}&apos; encountered, but extension parameter keys should not include their prefix..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.FieldMustBeSigned">
+ <summary>
+ Looks up a localized string similar to The OpenID parameter &apos;{0}&apos; must be signed by the OpenID Provider, but was not..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.FragmentNotAllowedOnXRIs">
+ <summary>
+ Looks up a localized string similar to Fragment segments do not apply to XRI identifiers..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.HttpContextRequiredForThisOverload">
+ <summary>
+ Looks up a localized string similar to No current ASP.NET HttpContext was detected. Use an overload that does not require one..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.IAssociationStoreRequiredWhenNoHttpContextAvailable">
+ <summary>
+ Looks up a localized string similar to No current HttpContext was detected, so an IAssociationStore must be explicitly provided. Call the Server constructor overload that takes an IAssociationStore..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.IdentifierSelectModeOnly">
+ <summary>
+ Looks up a localized string similar to This operation is only allowed when IsIdentifierSelect is true..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.IdentifierSelectRequiresMatchingIdentifiers">
+ <summary>
+ Looks up a localized string similar to ClaimedIdentifier and LocalIdentifier must be the same when IsIdentifierSelect is true..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.IncompatibleAssociationAndSessionTypes">
+ <summary>
+ Looks up a localized string similar to The Provider requested association type &apos;{0}&apos; and session type &apos;{1}&apos;, which are not compatible with each other..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InconsistentAppState">
+ <summary>
+ Looks up a localized string similar to Inconsistent setting of application state. Authentication request was sent with application state available, but authentication response was received without it available. This makes it impossible to validate the token&apos;s signature and will cause assertion verification failure..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InsecureWebRequestWithSslRequired">
+ <summary>
+ Looks up a localized string similar to Insecure web request for &apos;{0}&apos; aborted due to security requirements demanding HTTPS..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidCharacterInKeyValueFormInput">
+ <summary>
+ Looks up a localized string similar to Cannot encode &apos;{0}&apos; because it contains an illegal character for Key-Value Form encoding. (line {1}: &apos;{2}&apos;).
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidKeyValueFormCharacterMissing">
+ <summary>
+ Looks up a localized string similar to Cannot decode Key-Value Form because a line was found without a &apos;{0}&apos; character. (line {1}: &apos;{2}&apos;).
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidNonce">
+ <summary>
+ Looks up a localized string similar to The nonce was not in the expected format..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidOpenIdExtensionParameterValue">
+ <summary>
+ Looks up a localized string similar to OpenID extension {0} parameter {1} had unexpected value &apos;{2}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidOpenIdQueryParameterValue">
+ <summary>
+ Looks up a localized string similar to OpenID parameter &apos;{0}&apos; had unexpected value &apos;{1}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidOpenIdQueryParameterValueBadBase64">
+ <summary>
+ Looks up a localized string similar to OpenID parameter &apos;{0}&apos; with value &apos;{1}&apos; failed to base64 decode..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidScheme">
+ <summary>
+ Looks up a localized string similar to The scheme must be http or https but was &apos;{0}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidSignature">
+ <summary>
+ Looks up a localized string similar to The signature verification failed..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidUri">
+ <summary>
+ Looks up a localized string similar to The value &apos;{0}&apos; is not a valid URI..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidXRDSDocument">
+ <summary>
+ Looks up a localized string similar to Failure parsing XRDS document..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.InvalidXri">
+ <summary>
+ Looks up a localized string similar to Not a recognized XRI format: &apos;{0}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.IssuedAssertionFailsIdentifierDiscovery">
+ <summary>
+ Looks up a localized string similar to The OpenId Provider issued an assertion for an Identifier whose discovery information did not match.
+ Assertion endpoint info:
+ {0}
+ Discovered endpoint info:
+ {1}.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.KeyAlreadyExists">
+ <summary>
+ Looks up a localized string similar to The given key &apos;{0}&apos; already exists..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.KeysListAndDictionaryDoNotMatch">
+ <summary>
+ Looks up a localized string similar to The list of keys do not match the provided dictionary..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.MatchingArgumentsExpected">
+ <summary>
+ Looks up a localized string similar to The &apos;{0}&apos; and &apos;{1}&apos; parameters must both be or not be &apos;{2}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.MinimumOPVersionRequirementNotMet">
+ <summary>
+ Looks up a localized string similar to This Relying Party requires a Provider that supports at least OpenID version {0}, but Provider is detected to only support OpenID version {1}..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.MissingCanonicalIDElement">
+ <summary>
+ Looks up a localized string similar to The XRDS document for XRI {0} is missing the required CanonicalID element..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.MissingInternalQueryParameter">
+ <summary>
+ Looks up a localized string similar to Query parameter &apos;{0}&apos; was missing from the query..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.MissingOpenIdQueryParameter">
+ <summary>
+ Looks up a localized string similar to OpenID parameter &apos;{0}&apos; was missing from the query..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.MissingReturnToQueryParameter">
+ <summary>
+ Looks up a localized string similar to Query parameter &apos;{0}&apos; was expected in the return_to query &apos;{1}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.NoRelyingPartyEndpointDiscovered">
+ <summary>
+ Looks up a localized string similar to No XRDS document containing OpenId relying party endpoint information could be found at {0}..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.OpenIdEndpointNotFound">
+ <summary>
+ Looks up a localized string similar to No OpenId endpoint found..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.OpenIdTextBoxEmpty">
+ <summary>
+ Looks up a localized string similar to No OpenId url is provided..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.OperationOnlyValidForSetupRequiredState">
+ <summary>
+ Looks up a localized string similar to This operation is only allowed when IAuthenticationResponse.State == AuthenticationStatus.SetupRequired..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.PrefixWithoutPeriodsExpected">
+ <summary>
+ Looks up a localized string similar to Prefix should not begin or end with a period..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ProviderOpenIdVersionUnknown">
+ <summary>
+ Looks up a localized string similar to Unable to determine provider&apos;s OpenID version..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ProviderRespondedWithError">
+ <summary>
+ Looks up a localized string similar to The OpenId Provider responded with an error: &apos;{0}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ProviderRespondedWithUnrecognizedHTTPStatusCode">
+ <summary>
+ Looks up a localized string similar to The OpenId Provider responded with unrecognized HTTP status code {0}..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.RealmCausedRedirectUponDiscovery">
+ <summary>
+ Looks up a localized string similar to An HTTP request to the realm URL ({0}) resulted in a redirect, which is not allowed during relying party discovery..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ReplayAttackDetected">
+ <summary>
+ Looks up a localized string similar to The nonce has already been used..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ResponseNotReady">
+ <summary>
+ Looks up a localized string similar to OpenId provider&apos;s response is not ready. Use IsResponseReady to check, and fill in the required properties first..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ReturnToArgDifferentFromQueryArg">
+ <summary>
+ Looks up a localized string similar to The &apos;{0}&apos; parameter does not have the same value for return_to (&apos;{1}&apos;) and the regular query (&apos;{2}&apos;)..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ReturnToNotUnderRealm">
+ <summary>
+ Looks up a localized string similar to return_to &apos;{0}&apos; not under realm &apos;{1}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.ReturnToParamDoesNotMatchRequestUrl">
+ <summary>
+ Looks up a localized string similar to The {0} parameter does not match the actual URL the request was made with..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.TamperingDetected">
+ <summary>
+ Looks up a localized string similar to The &apos;{0}&apos; parameter was expected to have the value &apos;{1}&apos; but had &apos;{2}&apos; instead..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.TooManyRedirects">
+ <summary>
+ Looks up a localized string similar to The maximum allowable number of redirects were exceeded while requesting &apos;{0}&apos;..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.TypeMustImplementX">
+ <summary>
+ Looks up a localized string similar to The type must implement {0}..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.UnsafeWebRequestDetected">
+ <summary>
+ Looks up a localized string similar to The URL &apos;{0}&apos; is rated unsafe and cannot be requested this way..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.UnspecifiedDateTimeKindNotAllowed">
+ <summary>
+ Looks up a localized string similar to Providing a DateTime whose Kind is Unspecified is not allowed..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.XriResolutionFailed">
+ <summary>
+ Looks up a localized string similar to XRI resolution failed..
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Strings.XriResolutionStatusMissing">
+ <summary>
+ Looks up a localized string similar to Could not find XRI resolution Status tag or code attribute was invalid..
+ </summary>
+ </member>
+ <member name="T:DotNetOpenId.Logger">
+ <summary>
+ A general logger for the entire DotNetOpenId library.
+ </summary>
+ <remarks>
+ Because this logger is intended for use with non-localized strings, the
+ overloads that take <see cref="T:System.Globalization.CultureInfo"/> have been removed, and
+ <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/> is used implicitly.
+ </remarks>
+ </member>
+ <member name="T:DotNetOpenId.Realm">
+ <summary>
+ A trust root to validate requests and match return URLs against.
+ </summary>
+ <remarks>
+ This fills the OpenID Authentication 2.0 specification for realms.
+ See http://openid.net/specs/openid-authentication-2_0.html#realms
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Realm.op_Implicit(System.String)~DotNetOpenId.Realm">
+ <summary>
+ Implicitly converts the string-form of a URI to a <see cref="T:DotNetOpenId.Realm"/> object.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Realm.op_Implicit(System.Uri)~DotNetOpenId.Realm">
+ <summary>
+ Implicitly converts a <see cref="T:System.Uri"/> to a <see cref="T:DotNetOpenId.Realm"/> object.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Realm.op_Implicit(DotNetOpenId.Realm)~System.String">
+ <summary>
+ Implicitly converts a <see cref="T:DotNetOpenId.Realm"/> object to its <see cref="T:System.String"/> form.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Realm.#ctor(System.String)">
+ <summary>
+ Instantiates a <see cref="T:DotNetOpenId.Realm"/> from its string representation.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Realm.#ctor(System.Uri)">
+ <summary>
+ Instantiates a <see cref="T:DotNetOpenId.Realm"/> from its <see cref="T:System.Uri"/> representation.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Realm.#ctor(System.UriBuilder)">
+ <summary>
+ Instantiates a <see cref="T:DotNetOpenId.Realm"/> from its <see cref="T:System.UriBuilder"/> representation.
+ </summary>
+ <remarks>
+ This is useful because UriBuilder can construct a host with a wildcard
+ in the Host property, but once there it can't be converted to a Uri.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.Realm.Contains(System.String)">
+ <summary>
+ Validates a URL against this trust root.
+ </summary>
+ <param name="url">A string specifying URL to check.</param>
+ <returns>Whether the given URL is within this trust root.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Realm.Contains(System.Uri)">
+ <summary>
+ Validates a URL against this trust root.
+ </summary>
+ <param name="url">The URL to check.</param>
+ <returns>Whether the given URL is within this trust root.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Realm.Discover(System.Boolean)">
+ <summary>
+ Searches for an XRDS document at the realm URL, and if found, searches
+ for a description of a relying party endpoints (OpenId login pages).
+ </summary>
+ <param name="allowRedirects">
+ Whether redirects may be followed when discovering the Realm.
+ This may be true when creating an unsolicited assertion, but must be
+ false when performing return URL verification per 2.0 spec section 9.2.1.
+ </param>
+ <returns>The details of the endpoints if found, otherwise null.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Realm.Equals(System.Object)">
+ <summary>
+ Checks whether one <see cref="T:DotNetOpenId.Realm"/> is equal to another.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Realm.GetHashCode">
+ <summary>
+ Returns the hash code used for storing this object in a hash table.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:DotNetOpenId.Realm.ToString">
+ <summary>
+ Returns the string form of this <see cref="T:DotNetOpenId.Realm"/>.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.DomainWildcard">
+ <summary>
+ Whether a '*.' prefix to the hostname is used in the realm to allow
+ subdomains or hosts to be added to the URL.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.Host">
+ <summary>
+ Gets the host component of this instance.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.Scheme">
+ <summary>
+ Gets the scheme name for this URI.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.Port">
+ <summary>
+ Gets the port number of this URI.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.AbsolutePath">
+ <summary>
+ Gets the absolute path of the URI.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.PathAndQuery">
+ <summary>
+ Gets the System.Uri.AbsolutePath and System.Uri.Query properties separated
+ by a question mark (?).
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.NoWildcardUri">
+ <summary>
+ Gets the realm URL. If the realm includes a wildcard, it is not included here.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Realm.UriWithWildcardChangedToWww">
+ <summary>
+ Produces the Realm URL. If the realm URL had a wildcard in it,
+ the wildcard is replaced with a "www." prefix.
+ </summary>
+ <remarks>
+ See OpenID 2.0 spec section 9.2.1 for the explanation on the addition of
+ the "www" prefix.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Realm.IsSane">
+ <summary>
+ This method checks the to see if a trust root represents a reasonable (sane) set of URLs.
+ </summary>
+ <remarks>
+ 'http://*.com/', for example is not a reasonable pattern, as it cannot meaningfully
+ specify the site claiming it. This function attempts to find many related examples,
+ but it can only work via heuristics. Negative responses from this method should be
+ treated as advisory, used only to alert the user to examine the trust root carefully.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.UriIdentifier.TryCanonicalize(System.UriBuilder,System.Uri@)">
+ <summary>
+ Removes the fragment from a URL and sets the host to lowercase.
+ </summary>
+ <remarks>
+ This does NOT standardize an OpenID URL for storage in a database, as
+ it does nothing to convert the URL to a Claimed Identifier, besides the fact
+ that it only deals with URLs whereas OpenID 2.0 supports XRIs.
+ For this, you should lookup the value stored in IAuthenticationResponse.ClaimedIdentifier.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.UriIdentifier.DiscoverFromHtml(System.Uri,System.String)">
+ <summary>
+ Searches HTML for the HEAD META tags that describe OpenID provider services.
+ </summary>
+ <param name="claimedIdentifier">
+ The final URL that provided this HTML document.
+ This may not be the same as (this) userSuppliedIdentifier if the
+ userSuppliedIdentifier pointed to a 301 Redirect.
+ </param>
+ <param name="html">The HTML that was downloaded and should be searched.</param>
+ <returns>
+ An initialized ServiceEndpoint if the OpenID Provider information was
+ found. Otherwise null.
+ </returns>
+ <remarks>
+ OpenID 2.0 tags are always used if they are present, otherwise
+ OpenID 1.x tags are used if present.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.UriIdentifier.SchemeImplicitlyPrepended">
+ <summary>
+ Gets whether the scheme was missing when this Identifier was
+ created and added automatically as part of the normalization
+ process.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.UriUtil.CreateQueryString(System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Concatenates a list of name-value pairs as key=value&amp;key=value,
+ taking care to properly encode each key and value for URL
+ transmission. No ? is prefixed to the string.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.UriUtil.CreateQueryString(System.Collections.Specialized.NameValueCollection)">
+ <summary>
+ Concatenates a list of name-value pairs as key=value&amp;key=value,
+ taking care to properly encode each key and value for URL
+ transmission. No ? is prefixed to the string.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.UriUtil.AppendQueryArgs(System.UriBuilder,System.Collections.Generic.IDictionary{System.String,System.String})">
+ <summary>
+ Adds a set of name-value pairs to the end of a given URL
+ as part of the querystring piece. Prefixes a ? or &amp; before
+ first element as necessary.
+ </summary>
+ <param name="builder">The UriBuilder to add arguments to.</param>
+ <param name="args">
+ The arguments to add to the query.
+ If null, <paramref name="builder"/> is not changed.
+ </param>
+ </member>
+ <member name="M:DotNetOpenId.UriUtil.UriBuilderToStringWithImpliedPorts(System.UriBuilder)">
+ <summary>
+ Equivalent to UriBuilder.ToString() but omits port # if it may be implied.
+ Equivalent to UriBuilder.Uri.ToString(), but doesn't throw an exception if the Host has a wildcard.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Util.GetRequestUrlFromContext">
+ <summary>
+ Gets the original request URL, as seen from the browser before any URL rewrites on the server if any.
+ Cookieless session directory (if applicable) is also included.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Util.FindBestVersion``1(DotNetOpenId.Util.Func{DotNetOpenId.Protocol,``0},System.Collections.Generic.IEnumerable{``0})">
+ <summary>
+ Scans a list for matches with some element of the OpenID protocol,
+ searching from newest to oldest protocol for the first and best match.
+ </summary>
+ <typeparam name="T">The type of element retrieved from the <see cref="T:DotNetOpenId.Protocol"/> instance.</typeparam>
+ <param name="elementOf">Takes a <see cref="T:DotNetOpenId.Protocol"/> instance and returns an element of it.</param>
+ <param name="list">The list to scan for matches.</param>
+ <returns>The protocol with the element that matches some item in the list.</returns>
+ </member>
+ <member name="M:DotNetOpenId.Util.AreSequencesEquivalent``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">
+ <summary>
+ Tests two sequences for same contents and ordering.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Util.ToString``2(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{``0,``1}})">
+ <summary>
+ Prepares a dictionary for printing as a string.
+ </summary>
+ <remarks>
+ The work isn't done until (and if) the
+ <see cref="M:System.Object.ToString"/> method is actually called, which makes it great
+ for logging complex objects without being in a conditional block.
+ </remarks>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.XrdElement.OpenIdProviderIdentifierServices">
+ <summary>
+ Returns services for OP Identifiers.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.XrdElement.OpenIdClaimedIdentifierServices">
+ <summary>
+ Returns services for Claimed Identifiers.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.XrdElement.ServiceUris">
+ <summary>
+ An enumeration of all Service/URI elements, sorted in priority order.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Yadis.XrdsDocument.findClaimedIdentifierServices">
+ <summary>
+ Returns the OpenID-compatible services described by a given XRDS document,
+ in priority order.
+ </summary>
+ </member>
+ <member name="F:DotNetOpenId.XriIdentifier.xriResolverProxyTemplate">
+ <summary>
+ The magic URL that will provide us an XRDS document for a given XRI identifier.
+ </summary>
+ <remarks>
+ We use application/xrd+xml instead of application/xrds+xml because it gets
+ xri.net to automatically give us exactly the right XRD element for community i-names
+ automatically, saving us having to choose which one to use out of the result.
+ The ssl=true parameter tells the proxy resolver to accept only SSL connections
+ when resolving community i-names.
+ </remarks>
+ </member>
+ <member name="M:DotNetOpenId.XriIdentifier.IsValidXri(System.String)">
+ <summary>
+ Tests whether a given string represents a valid XRI format.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.XriIdentifier.canonicalizeXri(System.String)">
+ <summary>
+ Takes any valid form of XRI string and returns the canonical form of the same XRI.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.XriIdentifier.Discover(DotNetOpenId.XriIdentifier)">
+ <summary>
+ Performs discovery on THIS identifier, but generates <see cref="T:DotNetOpenId.RelyingParty.ServiceEndpoint"/>
+ instances that treat another given identifier as the user-supplied identifier.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.XriIdentifier.OriginalXri">
+ <summary>
+ The original XRI supplied to the constructor.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.XriIdentifier.CanonicalXri">
+ <summary>
+ The canonical form of the XRI string.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.XriIdentifier.XrdsUrl">
+ <summary>
+ Resolves the XRI to a URL from which an XRDS document may be downloaded.
+ </summary>
+ </member>
+ <member name="M:DotNetOpenId.Yadis.Yadis.Discover(DotNetOpenId.UriIdentifier,System.Boolean)">
+ <summary>
+ Performs YADIS discovery on some identifier.
+ </summary>
+ <param name="uri">The URI to perform discovery on.</param>
+ <param name="requireSsl">Whether discovery should fail if any step of it is not encrypted.</param>
+ <returns>
+ The result of discovery on the given URL.
+ Null may be returned if an error occurs,
+ or if <paramref name="requireSsl"/> is true but part of discovery
+ is not protected by SSL.
+ </returns>
+ </member>
+ <member name="M:DotNetOpenId.Yadis.Yadis.FindYadisDocumentLocationInHtmlMetaTags(System.String)">
+ <summary>
+ Searches an HTML document for a
+ &lt;meta http-equiv="X-XRDS-Location" content="{YadisURL}"&gt;
+ tag and returns the content of YadisURL.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.DiscoveryResult.RequestUri">
+ <summary>
+ The URI of the original YADIS discovery request.
+ This is the user supplied Identifier as given in the original
+ YADIS discovery request.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.DiscoveryResult.NormalizedUri">
+ <summary>
+ The fully resolved (after redirects) URL of the user supplied Identifier.
+ This becomes the ClaimedIdentifier.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.DiscoveryResult.YadisLocation">
+ <summary>
+ The location the XRDS document was downloaded from, if different
+ from the user supplied Identifier.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.DiscoveryResult.ContentType">
+ <summary>
+ The Content-Type associated with the <see cref="P:DotNetOpenId.Yadis.DiscoveryResult.ResponseText"/>.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.DiscoveryResult.ResponseText">
+ <summary>
+ The text in the final response.
+ This may be an XRDS document or it may be an HTML document,
+ as determined by the <see cref="P:DotNetOpenId.Yadis.DiscoveryResult.IsXrds"/> property.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.DiscoveryResult.IsXrds">
+ <summary>
+ Whether the <see cref="P:DotNetOpenId.Yadis.DiscoveryResult.ResponseText"/> represents an XRDS document.
+ False if the response is an HTML document.
+ </summary>
+ </member>
+ <member name="P:DotNetOpenId.Yadis.DiscoveryResult.UsedYadisLocation">
+ <summary>
+ True if the response to the userSuppliedIdentifier pointed to a different URL
+ for the XRDS document.
+ </summary>
+ </member>
+ </members>
+</doc>
diff --git a/samples/Consumer/Global.asax b/samples/Consumer/Global.asax
index d622f9c..3e06b29 100644
--- a/samples/Consumer/Global.asax
+++ b/samples/Consumer/Global.asax
@@ -1,32 +1,32 @@
-<%@ Application Language="C#" %>
-
-<script RunAt="server">
- void Application_Start(object sender, EventArgs e) {
- log4net.Config.XmlConfigurator.Configure();
- Logging.Logger.Info("Sample starting...");
- }
-
- void Application_End(object sender, EventArgs e) {
- Logging.Logger.Info("Sample shutting down...");
- // this would be automatic, but in partial trust scenarios it is not.
- log4net.LogManager.Shutdown();
- }
-
- void Application_Error(object sender, EventArgs e) {
- // Code that runs when an unhandled error occurs
-
- }
-
- void Session_Start(object sender, EventArgs e) {
- // Code that runs when a new session is started
-
- }
-
- void Session_End(object sender, EventArgs e) {
- // Code that runs when a session ends.
- // Note: The Session_End event is raised only when the sessionstate mode
- // is set to InProc in the Web.config file. If session mode is set to StateServer
- // or SQLServer, the event is not raised.
-
- }
-</script>
+<%@ Application Language="C#" %>
+
+<script RunAt="server">
+ void Application_Start(object sender, EventArgs e) {
+ log4net.Config.XmlConfigurator.Configure();
+ Logging.Logger.Info("Sample starting...");
+ }
+
+ void Application_End(object sender, EventArgs e) {
+ Logging.Logger.Info("Sample shutting down...");
+ // this would be automatic, but in partial trust scenarios it is not.
+ log4net.LogManager.Shutdown();
+ }
+
+ void Application_Error(object sender, EventArgs e) {
+ // Code that runs when an unhandled error occurs
+
+ }
+
+ void Session_Start(object sender, EventArgs e) {
+ // Code that runs when a new session is started
+
+ }
+
+ void Session_End(object sender, EventArgs e) {
+ // Code that runs when a session ends.
+ // Note: The Session_End event is raised only when the sessionstate mode
+ // is set to InProc in the Web.config file. If session mode is set to StateServer
+ // or SQLServer, the event is not raised.
+
+ }
+</script>
diff --git a/samples/Consumer/GoogleAddressBook.aspx b/samples/Consumer/GoogleAddressBook.aspx
index 2f0f6d1..1c20954 100644
--- a/samples/Consumer/GoogleAddressBook.aspx
+++ b/samples/Consumer/GoogleAddressBook.aspx
@@ -1,45 +1,45 @@
-<%@ Page Title="Gmail address book demo" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
- CodeFile="GoogleAddressBook.aspx.cs" Inherits="GoogleAddressBook" %>
-
-<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
- <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
- <asp:View runat="server" ID="Authorize">
- <table>
- <tr>
- <td>
- Google Consumer Key
- </td>
- <td>
- <asp:TextBox ID="consumerKeyBox" runat="server" Columns="35"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
- ControlToValidate="consumerKeyBox" Display="Dynamic"
- ErrorMessage="RequiredFieldValidator">*</asp:RequiredFieldValidator>
- </td>
- </tr>
- <tr>
- <td>
- Google Consumer Secret
- </td>
- <td>
- <asp:TextBox ID="consumerSecretBox" runat="server" Columns="35"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
- ControlToValidate="consumerSecretBox" Display="Dynamic">*</asp:RequiredFieldValidator>
- </td>
- </tr>
- <tr>
- <td>
- &nbsp;</td>
- <td>
- Don&#39;t have a Google Consumer Key?&nbsp;
- <a href="https://www.google.com/accounts/ManageDomains">Get one</a>.</td>
- </tr>
- </table>
- <asp:Button ID="authorizeButton" runat="server" Text="Download your Gmail Address Book"
- OnClick="authorizeButton_Click" />
- </asp:View>
- <asp:View runat="server" ID="Results">
- <p>Now displaying the first 25 records from your address book:</p>
- <asp:PlaceHolder runat="server" ID="resultsPlaceholder" />
- </asp:View>
- </asp:MultiView>
-</asp:Content>
+<%@ Page Title="Gmail address book demo" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
+ CodeFile="GoogleAddressBook.aspx.cs" Inherits="GoogleAddressBook" %>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
+ <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
+ <asp:View runat="server" ID="Authorize">
+ <table>
+ <tr>
+ <td>
+ Google Consumer Key
+ </td>
+ <td>
+ <asp:TextBox ID="consumerKeyBox" runat="server" Columns="35"></asp:TextBox>
+ <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
+ ControlToValidate="consumerKeyBox" Display="Dynamic"
+ ErrorMessage="RequiredFieldValidator">*</asp:RequiredFieldValidator>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ Google Consumer Secret
+ </td>
+ <td>
+ <asp:TextBox ID="consumerSecretBox" runat="server" Columns="35"></asp:TextBox>
+ <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
+ ControlToValidate="consumerSecretBox" Display="Dynamic">*</asp:RequiredFieldValidator>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ &nbsp;</td>
+ <td>
+ Don&#39;t have a Google Consumer Key?&nbsp;
+ <a href="https://www.google.com/accounts/ManageDomains">Get one</a>.</td>
+ </tr>
+ </table>
+ <asp:Button ID="authorizeButton" runat="server" Text="Download your Gmail Address Book"
+ OnClick="authorizeButton_Click" />
+ </asp:View>
+ <asp:View runat="server" ID="Results">
+ <p>Now displaying the first 25 records from your address book:</p>
+ <asp:PlaceHolder runat="server" ID="resultsPlaceholder" />
+ </asp:View>
+ </asp:MultiView>
+</asp:Content>
diff --git a/samples/Consumer/SampleWcf.aspx b/samples/Consumer/SampleWcf.aspx
index 6dfd56e..b3eda25 100644
--- a/samples/Consumer/SampleWcf.aspx
+++ b/samples/Consumer/SampleWcf.aspx
@@ -1,24 +1,24 @@
-<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
- CodeFile="SampleWcf.aspx.cs" Inherits="SampleWcf" %>
-
-<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
- <fieldset title="Authorization">
- <asp:CheckBoxList runat="server" ID="scopeList">
- <asp:ListItem Value="http://tempuri.org/IDataApi/GetName">GetName</asp:ListItem>
- <asp:ListItem Value="http://tempuri.org/IDataApi/GetAge">GetAge</asp:ListItem>
- <asp:ListItem Value="http://tempuri.org/IDataApi/GetFavoriteSites">GetFavoriteSites</asp:ListItem>
- </asp:CheckBoxList>
- <asp:Button ID="getAuthorizationButton" runat="server" Text="Get Authorization" OnClick="getAuthorizationButton_Click" />
- <asp:Label ID="authorizationLabel" runat="server" />
- </fieldset>
- <br />
- <asp:Button ID="getNameButton" runat="server" Text="Get Name" OnClick="getNameButton_Click" />
- <asp:Label ID="nameLabel" runat="server" />
- <br />
- <asp:Button ID="getAgeButton" runat="server" Text="Get Age" OnClick="getAgeButton_Click" />
- <asp:Label ID="ageLabel" runat="server" />
- <br />
- <asp:Button ID="getFavoriteSites" runat="server" Text="Get Favorite Sites"
- onclick="getFavoriteSites_Click" />
- <asp:Label ID="favoriteSitesLabel" runat="server" />
-</asp:Content>
+<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
+ CodeFile="SampleWcf.aspx.cs" Inherits="SampleWcf" %>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
+ <fieldset title="Authorization">
+ <asp:CheckBoxList runat="server" ID="scopeList">
+ <asp:ListItem Value="http://tempuri.org/IDataApi/GetName">GetName</asp:ListItem>
+ <asp:ListItem Value="http://tempuri.org/IDataApi/GetAge">GetAge</asp:ListItem>
+ <asp:ListItem Value="http://tempuri.org/IDataApi/GetFavoriteSites">GetFavoriteSites</asp:ListItem>
+ </asp:CheckBoxList>
+ <asp:Button ID="getAuthorizationButton" runat="server" Text="Get Authorization" OnClick="getAuthorizationButton_Click" />
+ <asp:Label ID="authorizationLabel" runat="server" />
+ </fieldset>
+ <br />
+ <asp:Button ID="getNameButton" runat="server" Text="Get Name" OnClick="getNameButton_Click" />
+ <asp:Label ID="nameLabel" runat="server" />
+ <br />
+ <asp:Button ID="getAgeButton" runat="server" Text="Get Age" OnClick="getAgeButton_Click" />
+ <asp:Label ID="ageLabel" runat="server" />
+ <br />
+ <asp:Button ID="getFavoriteSites" runat="server" Text="Get Favorite Sites"
+ onclick="getFavoriteSites_Click" />
+ <asp:Label ID="favoriteSitesLabel" runat="server" />
+</asp:Content>
diff --git a/samples/Consumer/TracePage.aspx b/samples/Consumer/TracePage.aspx
index 960e6ed..4d6ecc5 100644
--- a/samples/Consumer/TracePage.aspx
+++ b/samples/Consumer/TracePage.aspx
@@ -1,18 +1,18 @@
-<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TracePage.aspx.cs" Inherits="TracePage" %>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head runat="server">
- <title></title>
-</head>
-<body>
- <form id="form1" runat="server">
- <p align="right">
- <asp:Button runat="server" Text="Clear log" ID="clearLogButton" OnClick="clearLogButton_Click" />
- </p>
- <pre>
- <asp:PlaceHolder runat="server" ID="placeHolder1" />
- </pre>
- </form>
-</body>
-</html>
+<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TracePage.aspx.cs" Inherits="TracePage" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head runat="server">
+ <title></title>
+</head>
+<body>
+ <form id="form1" runat="server">
+ <p align="right">
+ <asp:Button runat="server" Text="Clear log" ID="clearLogButton" OnClick="clearLogButton_Click" />
+ </p>
+ <pre>
+ <asp:PlaceHolder runat="server" ID="placeHolder1" />
+ </pre>
+ </form>
+</body>
+</html>
diff --git a/samples/ConsumerWpf/App.xaml b/samples/ConsumerWpf/App.xaml
index 030c7ea..ffddc6d 100644
--- a/samples/ConsumerWpf/App.xaml
+++ b/samples/ConsumerWpf/App.xaml
@@ -1,8 +1,8 @@
-<Application x:Class="ConsumerWpf.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- StartupUri="MainWindow.xaml">
- <Application.Resources>
-
- </Application.Resources>
-</Application>
+<Application x:Class="ConsumerWpf.App"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ StartupUri="MainWindow.xaml">
+ <Application.Resources>
+
+ </Application.Resources>
+</Application>
diff --git a/samples/ConsumerWpf/Properties/Resources.resx b/samples/ConsumerWpf/Properties/Resources.resx
index ffecec8..af7dbeb 100644
--- a/samples/ConsumerWpf/Properties/Resources.resx
+++ b/samples/ConsumerWpf/Properties/Resources.resx
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
</root> \ No newline at end of file
diff --git a/samples/ConsumerWpf/Properties/Settings.settings b/samples/ConsumerWpf/Properties/Settings.settings
index 8f2fd95..033d7a5 100644
--- a/samples/ConsumerWpf/Properties/Settings.settings
+++ b/samples/ConsumerWpf/Properties/Settings.settings
@@ -1,7 +1,7 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
</SettingsFile> \ No newline at end of file
diff --git a/samples/ServiceProvider/App_Code/DataClasses.dbml b/samples/ServiceProvider/App_Code/DataClasses.dbml
index 328d461..0b54d0d 100644
--- a/samples/ServiceProvider/App_Code/DataClasses.dbml
+++ b/samples/ServiceProvider/App_Code/DataClasses.dbml
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Database Name="Database" Class="DataClassesDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
- <Connection Mode="WebSettings" ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True" SettingsObjectName="System.Configuration.ConfigurationManager.ConnectionStrings" SettingsPropertyName="DatabaseConnectionString" Provider="System.Data.SqlClient" />
- <Table Name="dbo.[User]" Member="Users">
- <Type Name="User">
- <Column Name="UserId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
- <Column Name="OpenIDClaimedIdentifier" Type="System.String" DbType="NVarChar(150) NOT NULL" CanBeNull="false" />
- <Column Name="OpenIDFriendlyIdentifier" Type="System.String" DbType="NVarChar(150)" CanBeNull="true" />
- <Column Name="FullName" Type="System.String" DbType="NVarChar(150)" CanBeNull="false" />
- <Column Name="Age" Type="System.Int32" DbType="int" CanBeNull="true" />
- <Association Name="User_FavoriteSite" Member="FavoriteSites" ThisKey="UserId" OtherKey="UserId" Type="FavoriteSite" />
- <Association Name="User_OAuthToken" Member="OAuthTokens" ThisKey="UserId" OtherKey="UserId" Type="OAuthToken" />
- </Type>
- </Table>
- <Table Name="dbo.FavoriteSite" Member="FavoriteSites">
- <Type Name="FavoriteSite">
- <Column Name="FavoriteSiteId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
- <Column Name="UserId" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
- <Column Name="SiteUrl" Type="System.String" DbType="NVarChar(255) NOT NULL" CanBeNull="false" />
- <Association Name="User_FavoriteSite" Member="User" ThisKey="UserId" OtherKey="UserId" Type="User" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
- </Type>
- </Table>
- <Table Name="dbo.OAuthConsumer" Member="OAuthConsumers">
- <Type Name="OAuthConsumer">
- <Column Name="ConsumerId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
- <Column Name="ConsumerKey" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
- <Column Name="ConsumerSecret" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
- <Association Name="OAuthConsumer_OAuthToken" Member="OAuthTokens" ThisKey="ConsumerId" OtherKey="ConsumerId" Type="OAuthToken" />
- </Type>
- </Table>
- <Table Name="dbo.OAuthToken" Member="OAuthTokens">
- <Type Name="OAuthToken">
- <Column Name="TokenId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
- <Column Name="Token" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
- <Column Name="TokenSecret" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
- <Column Name="State" Type="TokenAuthorizationState" DbType="Int NOT NULL" CanBeNull="false" />
- <Column Name="IssueDate" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
- <Column Name="ConsumerId" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
- <Column Name="UserId" Type="System.Int32" DbType="Int" CanBeNull="true" />
- <Column Name="Scope" Type="System.String" DbType="nvarchar(MAX)" CanBeNull="false" />
- <Association Name="OAuthConsumer_OAuthToken" Member="OAuthConsumer" ThisKey="ConsumerId" OtherKey="ConsumerId" Type="OAuthConsumer" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
- <Association Name="User_OAuthToken" Member="User" ThisKey="UserId" OtherKey="UserId" Type="User" IsForeignKey="true" DeleteRule="CASCADE" />
- </Type>
- </Table>
+<?xml version="1.0" encoding="utf-8"?>
+<Database Name="Database" Class="DataClassesDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
+ <Connection Mode="WebSettings" ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True" SettingsObjectName="System.Configuration.ConfigurationManager.ConnectionStrings" SettingsPropertyName="DatabaseConnectionString" Provider="System.Data.SqlClient" />
+ <Table Name="dbo.[User]" Member="Users">
+ <Type Name="User">
+ <Column Name="UserId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
+ <Column Name="OpenIDClaimedIdentifier" Type="System.String" DbType="NVarChar(150) NOT NULL" CanBeNull="false" />
+ <Column Name="OpenIDFriendlyIdentifier" Type="System.String" DbType="NVarChar(150)" CanBeNull="true" />
+ <Column Name="FullName" Type="System.String" DbType="NVarChar(150)" CanBeNull="false" />
+ <Column Name="Age" Type="System.Int32" DbType="int" CanBeNull="true" />
+ <Association Name="User_FavoriteSite" Member="FavoriteSites" ThisKey="UserId" OtherKey="UserId" Type="FavoriteSite" />
+ <Association Name="User_OAuthToken" Member="OAuthTokens" ThisKey="UserId" OtherKey="UserId" Type="OAuthToken" />
+ </Type>
+ </Table>
+ <Table Name="dbo.FavoriteSite" Member="FavoriteSites">
+ <Type Name="FavoriteSite">
+ <Column Name="FavoriteSiteId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
+ <Column Name="UserId" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
+ <Column Name="SiteUrl" Type="System.String" DbType="NVarChar(255) NOT NULL" CanBeNull="false" />
+ <Association Name="User_FavoriteSite" Member="User" ThisKey="UserId" OtherKey="UserId" Type="User" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
+ </Type>
+ </Table>
+ <Table Name="dbo.OAuthConsumer" Member="OAuthConsumers">
+ <Type Name="OAuthConsumer">
+ <Column Name="ConsumerId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
+ <Column Name="ConsumerKey" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
+ <Column Name="ConsumerSecret" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
+ <Association Name="OAuthConsumer_OAuthToken" Member="OAuthTokens" ThisKey="ConsumerId" OtherKey="ConsumerId" Type="OAuthToken" />
+ </Type>
+ </Table>
+ <Table Name="dbo.OAuthToken" Member="OAuthTokens">
+ <Type Name="OAuthToken">
+ <Column Name="TokenId" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
+ <Column Name="Token" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
+ <Column Name="TokenSecret" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
+ <Column Name="State" Type="TokenAuthorizationState" DbType="Int NOT NULL" CanBeNull="false" />
+ <Column Name="IssueDate" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
+ <Column Name="ConsumerId" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
+ <Column Name="UserId" Type="System.Int32" DbType="Int" CanBeNull="true" />
+ <Column Name="Scope" Type="System.String" DbType="nvarchar(MAX)" CanBeNull="false" />
+ <Association Name="OAuthConsumer_OAuthToken" Member="OAuthConsumer" ThisKey="ConsumerId" OtherKey="ConsumerId" Type="OAuthConsumer" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
+ <Association Name="User_OAuthToken" Member="User" ThisKey="UserId" OtherKey="UserId" Type="User" IsForeignKey="true" DeleteRule="CASCADE" />
+ </Type>
+ </Table>
</Database> \ No newline at end of file
diff --git a/samples/ServiceProvider/App_Code/DataClasses.dbml.layout b/samples/ServiceProvider/App_Code/DataClasses.dbml.layout
index 71f46f3..1fc61cf 100644
--- a/samples/ServiceProvider/App_Code/DataClasses.dbml.layout
+++ b/samples/ServiceProvider/App_Code/DataClasses.dbml.layout
@@ -1,51 +1,51 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 11, 8.5" name="DataClasses">
- <DataContextMoniker Name="/DataClassesDataContext" />
- <nestedChildShapes>
- <classShape Id="696d2c69-040e-411d-9257-bb664b743834" absoluteBounds="0.5, 0.5, 2.125, 1.7708968098958331">
- <DataClassMoniker Name="/DataClassesDataContext/User" />
- <nestedChildShapes>
- <elementListCompartment Id="cd90aeff-476c-44a9-897f-a986e4a8305b" absoluteBounds="0.515, 0.96, 2.0949999999999998, 1.2108968098958333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
- </nestedChildShapes>
- </classShape>
- <classShape Id="8a79b099-7f87-4766-907a-db2c3e1b5716" absoluteBounds="3.5, 0.625, 2, 1.3862939453125005">
- <DataClassMoniker Name="/DataClassesDataContext/FavoriteSite" />
- <nestedChildShapes>
- <elementListCompartment Id="eba736b9-f9ec-484b-8083-c77155a49e4e" absoluteBounds="3.515, 1.085, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
- </nestedChildShapes>
- </classShape>
- <classShape Id="f909becb-85b1-4fe6-bb16-3feb3e4fe3ee" absoluteBounds="0.625, 3.25, 2, 1.3862939453124998">
- <DataClassMoniker Name="/DataClassesDataContext/OAuthConsumer" />
- <nestedChildShapes>
- <elementListCompartment Id="464308c4-d112-4448-b0c9-d9b82fb0ca4e" absoluteBounds="0.64, 3.71, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
- </nestedChildShapes>
- </classShape>
- <classShape Id="895ebbc8-8352-4c04-9e53-b8e6c8302d36" absoluteBounds="3.5, 3.125, 2, 2.3478011067708326">
- <DataClassMoniker Name="/DataClassesDataContext/OAuthToken" />
- <nestedChildShapes>
- <elementListCompartment Id="403126d0-3d2a-4af4-b0b8-c489a830bbd4" absoluteBounds="3.515, 3.585, 1.9700000000000002, 1.7878011067708333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
- </nestedChildShapes>
- </classShape>
- <associationConnector edgePoints="[(2.625 : 1.31814697265625); (3.5 : 1.31814697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
- <AssociationMoniker Name="/DataClassesDataContext/User/User_FavoriteSite" />
- <nodes>
- <classShapeMoniker Id="696d2c69-040e-411d-9257-bb664b743834" />
- <classShapeMoniker Id="8a79b099-7f87-4766-907a-db2c3e1b5716" />
- </nodes>
- </associationConnector>
- <associationConnector edgePoints="[(2.625 : 3.94314697265625); (3.5 : 3.94314697265625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
- <AssociationMoniker Name="/DataClassesDataContext/OAuthConsumer/OAuthConsumer_OAuthToken" />
- <nodes>
- <classShapeMoniker Id="f909becb-85b1-4fe6-bb16-3feb3e4fe3ee" />
- <classShapeMoniker Id="895ebbc8-8352-4c04-9e53-b8e6c8302d36" />
- </nodes>
- </associationConnector>
- <associationConnector edgePoints="[(0.53125 : 2.27089680989583); (0.53125 : 5.08579752604167); (3.5 : 5.08579752604167)]" fixedFrom="Algorithm" fixedTo="Algorithm">
- <AssociationMoniker Name="/DataClassesDataContext/User/User_OAuthToken" />
- <nodes>
- <classShapeMoniker Id="696d2c69-040e-411d-9257-bb664b743834" />
- <classShapeMoniker Id="895ebbc8-8352-4c04-9e53-b8e6c8302d36" />
- </nodes>
- </associationConnector>
- </nestedChildShapes>
+<?xml version="1.0" encoding="utf-8"?>
+<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 11, 8.5" name="DataClasses">
+ <DataContextMoniker Name="/DataClassesDataContext" />
+ <nestedChildShapes>
+ <classShape Id="696d2c69-040e-411d-9257-bb664b743834" absoluteBounds="0.5, 0.5, 2.125, 1.7708968098958331">
+ <DataClassMoniker Name="/DataClassesDataContext/User" />
+ <nestedChildShapes>
+ <elementListCompartment Id="cd90aeff-476c-44a9-897f-a986e4a8305b" absoluteBounds="0.515, 0.96, 2.0949999999999998, 1.2108968098958333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ </nestedChildShapes>
+ </classShape>
+ <classShape Id="8a79b099-7f87-4766-907a-db2c3e1b5716" absoluteBounds="3.5, 0.625, 2, 1.3862939453125005">
+ <DataClassMoniker Name="/DataClassesDataContext/FavoriteSite" />
+ <nestedChildShapes>
+ <elementListCompartment Id="eba736b9-f9ec-484b-8083-c77155a49e4e" absoluteBounds="3.515, 1.085, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ </nestedChildShapes>
+ </classShape>
+ <classShape Id="f909becb-85b1-4fe6-bb16-3feb3e4fe3ee" absoluteBounds="0.625, 3.25, 2, 1.3862939453124998">
+ <DataClassMoniker Name="/DataClassesDataContext/OAuthConsumer" />
+ <nestedChildShapes>
+ <elementListCompartment Id="464308c4-d112-4448-b0c9-d9b82fb0ca4e" absoluteBounds="0.64, 3.71, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ </nestedChildShapes>
+ </classShape>
+ <classShape Id="895ebbc8-8352-4c04-9e53-b8e6c8302d36" absoluteBounds="3.5, 3.125, 2, 2.3478011067708326">
+ <DataClassMoniker Name="/DataClassesDataContext/OAuthToken" />
+ <nestedChildShapes>
+ <elementListCompartment Id="403126d0-3d2a-4af4-b0b8-c489a830bbd4" absoluteBounds="3.515, 3.585, 1.9700000000000002, 1.7878011067708333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ </nestedChildShapes>
+ </classShape>
+ <associationConnector edgePoints="[(2.625 : 1.31814697265625); (3.5 : 1.31814697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+ <AssociationMoniker Name="/DataClassesDataContext/User/User_FavoriteSite" />
+ <nodes>
+ <classShapeMoniker Id="696d2c69-040e-411d-9257-bb664b743834" />
+ <classShapeMoniker Id="8a79b099-7f87-4766-907a-db2c3e1b5716" />
+ </nodes>
+ </associationConnector>
+ <associationConnector edgePoints="[(2.625 : 3.94314697265625); (3.5 : 3.94314697265625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+ <AssociationMoniker Name="/DataClassesDataContext/OAuthConsumer/OAuthConsumer_OAuthToken" />
+ <nodes>
+ <classShapeMoniker Id="f909becb-85b1-4fe6-bb16-3feb3e4fe3ee" />
+ <classShapeMoniker Id="895ebbc8-8352-4c04-9e53-b8e6c8302d36" />
+ </nodes>
+ </associationConnector>
+ <associationConnector edgePoints="[(0.53125 : 2.27089680989583); (0.53125 : 5.08579752604167); (3.5 : 5.08579752604167)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+ <AssociationMoniker Name="/DataClassesDataContext/User/User_OAuthToken" />
+ <nodes>
+ <classShapeMoniker Id="696d2c69-040e-411d-9257-bb664b743834" />
+ <classShapeMoniker Id="895ebbc8-8352-4c04-9e53-b8e6c8302d36" />
+ </nodes>
+ </associationConnector>
+ </nestedChildShapes>
</ordesignerObjectsDiagram> \ No newline at end of file
diff --git a/samples/ServiceProvider/DataApi.svc b/samples/ServiceProvider/DataApi.svc
index 8dcf863..4e9e477 100644
--- a/samples/ServiceProvider/DataApi.svc
+++ b/samples/ServiceProvider/DataApi.svc
@@ -1 +1 @@
-<%@ ServiceHost Language="C#" Debug="true" Service="DataApi" CodeBehind="~/App_Code/DataApi.cs" %>
+<%@ ServiceHost Language="C#" Debug="true" Service="DataApi" CodeBehind="~/App_Code/DataApi.cs" %>
diff --git a/samples/ServiceProvider/Login.aspx b/samples/ServiceProvider/Login.aspx
index 34b85e9..21f212c 100644
--- a/samples/ServiceProvider/Login.aspx
+++ b/samples/ServiceProvider/Login.aspx
@@ -1,14 +1,14 @@
-<%@ Page Title="Login" Language="C#" MasterPageFile="~/MasterPage.master" %>
-
-<%@ Register Assembly="DotNetOpenId" Namespace="DotNetOpenId.RelyingParty" TagPrefix="rp" %>
-
-<script runat="server">
- private void Page_Load(object sender, EventArgs e) {
- // fake out login for offline use of sample.
- FormsAuthentication.RedirectFromLoginPage("=!9B72.7DD1.50A9.5CCD", false);
- }
-</script>
-
-<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
- <rp:OpenIdLogin runat="server" TabIndex='1' />
-</asp:Content>
+<%@ Page Title="Login" Language="C#" MasterPageFile="~/MasterPage.master" %>
+
+<%@ Register Assembly="DotNetOpenId" Namespace="DotNetOpenId.RelyingParty" TagPrefix="rp" %>
+
+<script runat="server">
+ private void Page_Load(object sender, EventArgs e) {
+ // fake out login for offline use of sample.
+ FormsAuthentication.RedirectFromLoginPage("=!9B72.7DD1.50A9.5CCD", false);
+ }
+</script>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
+ <rp:OpenIdLogin runat="server" TabIndex='1' />
+</asp:Content>
diff --git a/samples/ServiceProvider/Members/Authorize.aspx b/samples/ServiceProvider/Members/Authorize.aspx
index 067645d..0fd272c 100644
--- a/samples/ServiceProvider/Members/Authorize.aspx
+++ b/samples/ServiceProvider/Members/Authorize.aspx
@@ -1,32 +1,32 @@
-<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
- CodeFile="Authorize.aspx.cs" Inherits="Authorize" %>
-
-<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
- <asp:MultiView runat="server" ActiveViewIndex="0" ID="multiView">
- <asp:View runat="server">
- <div style="background-color: Yellow">
- <b>Warning</b>: Never give your login credentials to another web site or application.
- </div>
- <p>The client web site or application
- <asp:Label ID="consumerLabel" Font-Bold="true" runat="server" Text="[consumer]" />
- wants access to your
- <asp:Label ID="desiredAccessLabel" Font-Bold="true" runat="server" Text="[protected resource]" />.
- </p>
- <p>Do you want to allow this? </p>
- <div>
- <asp:Button ID="allowAccessButton" runat="server" Text="Yes" OnClick="allowAccessButton_Click" />
- <asp:Button ID="denyAccessButton" runat="server" Text="No"
- onclick="denyAccessButton_Click" />
- </div>
- <p>If you grant access now, you can revoke it at any time by returning to this page.
- </p>
- </asp:View>
- <asp:View runat="server">
- <p>Authorization has been granted. Please inform the consumer application or web site
- of this. </p>
- </asp:View>
- <asp:View runat="server">
- <p>Authorization has been denied. You're free to do whatever now. </p>
- </asp:View>
- </asp:MultiView>
-</asp:Content>
+<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
+ CodeFile="Authorize.aspx.cs" Inherits="Authorize" %>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
+ <asp:MultiView runat="server" ActiveViewIndex="0" ID="multiView">
+ <asp:View runat="server">
+ <div style="background-color: Yellow">
+ <b>Warning</b>: Never give your login credentials to another web site or application.
+ </div>
+ <p>The client web site or application
+ <asp:Label ID="consumerLabel" Font-Bold="true" runat="server" Text="[consumer]" />
+ wants access to your
+ <asp:Label ID="desiredAccessLabel" Font-Bold="true" runat="server" Text="[protected resource]" />.
+ </p>
+ <p>Do you want to allow this? </p>
+ <div>
+ <asp:Button ID="allowAccessButton" runat="server" Text="Yes" OnClick="allowAccessButton_Click" />
+ <asp:Button ID="denyAccessButton" runat="server" Text="No"
+ onclick="denyAccessButton_Click" />
+ </div>
+ <p>If you grant access now, you can revoke it at any time by returning to this page.
+ </p>
+ </asp:View>
+ <asp:View runat="server">
+ <p>Authorization has been granted. Please inform the consumer application or web site
+ of this. </p>
+ </asp:View>
+ <asp:View runat="server">
+ <p>Authorization has been denied. You're free to do whatever now. </p>
+ </asp:View>
+ </asp:MultiView>
+</asp:Content>
diff --git a/samples/ServiceProvider/Members/AuthorizedConsumers.aspx b/samples/ServiceProvider/Members/AuthorizedConsumers.aspx
index fb59ccf..d6ea668 100644
--- a/samples/ServiceProvider/Members/AuthorizedConsumers.aspx
+++ b/samples/ServiceProvider/Members/AuthorizedConsumers.aspx
@@ -1,7 +1,7 @@
-<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
- CodeFile="AuthorizedConsumers.aspx.cs" Inherits="AuthorizedConsumers" %>
-
-<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
- <h2>The following consumers have access to your data</h2>
- <p>TODO</p>
-</asp:Content>
+<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
+ CodeFile="AuthorizedConsumers.aspx.cs" Inherits="AuthorizedConsumers" %>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="Server">
+ <h2>The following consumers have access to your data</h2>
+ <p>TODO</p>
+</asp:Content>
diff --git a/samples/ServiceProvider/Members/Logoff.aspx b/samples/ServiceProvider/Members/Logoff.aspx
index 77aa2e5..afa9dd9 100644
--- a/samples/ServiceProvider/Members/Logoff.aspx
+++ b/samples/ServiceProvider/Members/Logoff.aspx
@@ -1,8 +1,8 @@
-<%@ Page Title="Log off" Language="C#" MasterPageFile="~/MasterPage.master" %>
-
-<script runat="server">
- private void Page_Load(object sender, EventArgs e) {
- FormsAuthentication.SignOut();
- Response.Redirect("~/");
- }
-</script>
+<%@ Page Title="Log off" Language="C#" MasterPageFile="~/MasterPage.master" %>
+
+<script runat="server">
+ private void Page_Load(object sender, EventArgs e) {
+ FormsAuthentication.SignOut();
+ Response.Redirect("~/");
+ }
+</script>
diff --git a/samples/ServiceProvider/Members/Web.config b/samples/ServiceProvider/Members/Web.config
index 3e43df5..50fab27 100644
--- a/samples/ServiceProvider/Members/Web.config
+++ b/samples/ServiceProvider/Members/Web.config
@@ -1,8 +1,8 @@
-<?xml version="1.0"?>
-<configuration>
- <system.web>
- <authorization>
- <deny users="?"/>
- </authorization>
- </system.web>
-</configuration>
+<?xml version="1.0"?>
+<configuration>
+ <system.web>
+ <authorization>
+ <deny users="?"/>
+ </authorization>
+ </system.web>
+</configuration>
diff --git a/samples/ServiceProvider/TracePage.aspx b/samples/ServiceProvider/TracePage.aspx
index 960e6ed..4d6ecc5 100644
--- a/samples/ServiceProvider/TracePage.aspx
+++ b/samples/ServiceProvider/TracePage.aspx
@@ -1,18 +1,18 @@
-<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TracePage.aspx.cs" Inherits="TracePage" %>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head runat="server">
- <title></title>
-</head>
-<body>
- <form id="form1" runat="server">
- <p align="right">
- <asp:Button runat="server" Text="Clear log" ID="clearLogButton" OnClick="clearLogButton_Click" />
- </p>
- <pre>
- <asp:PlaceHolder runat="server" ID="placeHolder1" />
- </pre>
- </form>
-</body>
-</html>
+<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TracePage.aspx.cs" Inherits="TracePage" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head runat="server">
+ <title></title>
+</head>
+<body>
+ <form id="form1" runat="server">
+ <p align="right">
+ <asp:Button runat="server" Text="Clear log" ID="clearLogButton" OnClick="clearLogButton_Click" />
+ </p>
+ <pre>
+ <asp:PlaceHolder runat="server" ID="placeHolder1" />
+ </pre>
+ </form>
+</body>
+</html>
diff --git a/src/DotNetOpenAuth.Test/OpenId/dhpriv.txt b/src/DotNetOpenAuth.Test/OpenId/dhpriv.txt
index 3dc843b..b5206a2 100644
--- a/src/DotNetOpenAuth.Test/OpenId/dhpriv.txt
+++ b/src/DotNetOpenAuth.Test/OpenId/dhpriv.txt
@@ -1,29 +1,29 @@
-ALoiAzCdasNc/t7MCd3BY7fTDx5qIVKWvYLryQ7Q3uNcNst3aoL9n6FQe1C206UinrA09ql2OROhMVX0kyATCRvoNKLEDM9zfGqqQIloMFMNy5X+0169UWhQy6V/0L6nKU7hRAgs3W8FUD5xijB3EM4zUxG3CPazdftlIvUr/R45 AMcX69rlxfc7lHnl1FY87FHf6U7KITe1gyuU1bPnIuAkaBiB0SOdRO7Uom2HY0uudFj6F14Q+/Th3DkaJ+lLDqH9Vm93OZ5YEHAmmMqlpOKzXUcU+9mz2d0ML4Nlr+yeMbmttlysrNgjvwozARCZvSqJ8haY0dK5xe9/LTOlJlqa
-AIL26kKBfCaXyXNgrtahVTPqY3DAW4iwkZHfEeWRV4EuHnCvNdG+2NHRXbjokKnR3+MfZZHrJXj+UzID6ce0DyhYIOMR59CP4fvEOydG3XVzTuIsDK2SqLAZd/8LDVe0jTRL0LKG4Ai3+4mdlDarFyHNRZ91VFTpPFomQS4mv/NT fXB3HGZWLUNc1WQzkHN7b1rTWC0rGqJvgPohU+CDnZrKU259i/8cEGFqGWMzL4ReR5bEV/LjbGFSUfa5TvrP8yHyRnQrQ3ZaGW0f1Wz6rJioODqoapQQK+AwgREsROZyCPw8KAjYLz1mDNRpLENg03vB5TKU9eNh3FZAJf5GBO8=
-AIbDYlOTUXENW4WFDkuTGzD+ae65BfcdnaKEMBgvL0bizGrG+0rf7fXtWPEEVBqGQ9h/hP/v0oTIV2rcjpweTmyP9GqIFRQv1pIFrIR03qnsWYXyA3Tw3JXBsKwgxAiyOiOuxj+T4rSHdObYT7BDa8jDPCIItF6wh7rROTu935Nj AMLcirsSlIwh/xKAzE7BJnUlrHC+VaMP/dNyWbQ5B9GCpjNGz3z/fdO+8FYrfiYTNlNsMFQQKAPNSXwcPsg0gL1NZ6hL1TbJBmGm9d3Jfp1V55SYfjNrmLR7/1F+EBdCuUhTR6LRTMCWHZbJQv1Ay0csxBHYo9xRBHLUQOrLdV8L
-IycdHiy5VfT/ZTw5HfnBt7kPV2S5GxZjy6EDWpd9ViQ3iBj3qTehio5pMx6Tl+dbN0H77cmNldORs6XIJHxmvPYWjh41BKV+EBUQnbHWgSjY2LqSMG4Q5LrLoN1sVCrxctY4CClne1GP040wppGy+Zn+d8AxUxZlHcoYQmoUD74= AJNfL6W94ntqdMR1PE0NJAPKs8Ph3gh+dGBW2hgBOlDUKuSmKW3UcLXrlASks2bwlrCIR8mOuS/mJ6Zfh8toCZV0nRgTMFMV1TNtIgj9V+NdW+IEH7EjxvTPDwtSSBgvfrnHjWW6XBxjoFgrlMIsHn147oLueJJuLvr3FFweuHnc
-AKZQ42fsyLxL+z5y01Ezo2ul+AGNsWuXWZnsqQcuusX8pHocv/vxaWptpqUFqymjSURaLS93ZBHD3LuT43K7J9DDLllTqNNzg80fI2mEebxMUbfzSOEc7t4coTh3vXCMWvJYo5fDXquCy0RVGwPZ2I92UKoBSaKjN6fiU8MM9XDt JLHWENrxcrEwdQbMqFMBaAtgVClL3B4/lByGPZVjAu7HorZFkxYHU7yi9VPQWl3hd6NhFIZLe7MYfCv9It/baeRdZqtiQWA3/qeJ+boynZpZUQY8TeDUgE12O4ykjoRzppircP5xl1f5VyFz0K0vZcCegxK9uXUT1vNTaGqWEAI=
-a6H2Qz+qz5bPOdhGUMiRJtBiunYJ6YH0ehDC+X86qP2SY1EzQLgyrcXo9xeKE3Ck+bv+Bvja8vjaqYqsDYg2vfuR7LnRn7D7NyecyCOeu6raHoBR9gFh/BkI38unT/0DmFlPVHAaYNMwa9rXFonwz5ofYp0hedoElipV0wBmzdI= SMUtiopT5lVwfPW5a3lpnEc+fkx+K6l3Ni5fDlrjbQBKcnDrcupG6nieDLILvh3LV0EmTwSwthKCTDCIs3h8df+bN1eCsvWC8z0189Czsis5Xf6KxXfcu2JfkmEJOWxWC+fbHA8kGml4ASPCT7BV1dTyutw3u0YrONTDUGsr0xM=
-IIr7ddoKHJm0gqF90Tsxy6UDG3Bgeftso/3UAdGg0G1Nd3vMC0VLKF7qbXyfNVqUKE/EORBFl3GIDfO8EhtLaTzXNjPiCxJf8ZWLkfUhFjNm6SawFmlm49baC+iqj320clwcFwmx/LvCyKoqYEC1aTyR4af1qXH4j9znIiqDG7s= Md3Piz5CAmGY03uAfAUcvYEOS/VKGjaKkNw0sQ6axFtk2LlB0ua/7taXf3qBiZ77tQ/+HvHJCb7SgfC3wB23MVlApVGeY27X/GJl2ushWXizRgaJi5vw/OEd4/yebve3JeIeHqWurSHqQX0xHVx4c68OUW2mBzmb7UbvTDIRsrg=
-NTVz/x3JkOztoqz1gx8haCyPhjDDV2qpBX3bpxcTbGMbPVJV0y6hLYPiGjSduAU8C2HYiFwgA00dWOYy2XzgS/g49cxK/tdUt9CJwoHlbHzi4nns5wCCTYNk/odmYZKYBNjZqPkW07WCog8gjFCVdyZGfP3TCphdjrcpyR6ZNhg= OkRF5I0PiazSLqZcCUx0U5kWQJ/o15TKP463BX9lbm6NVmabNPSd4JLGAmSdYFL/pxUKVR1he9yjfUoLgTWYWzgmsb5F7PX0ZZkXu/SYbc3wGWpME7L7YSiqZxX0LHj4L7/EbTt4eOY0vTdHHFoiyVquW4REdIfA24ko1Ck/JvU=
-O9p26iA+A2aNOrbJjOAXfUgj/ood14BbxXJZ+bTc4eLMg8sVwuqzHFR8r5tjQA22o3ArQdpjRPD3PJdgLoW6Tc4Gf8rzJocBjP/3z7qYYWZn7mPCE7dxr1Yx2IWtaBRP91u973JnuL5dVFylcJbux/ytTxLeAnlTO3uHdXyO5Fo= ALGCzqcx3faQXN003Nv2SWaJRCSL6XC3SHKnjkksSkx4gbqBakvZ0nA8U8qo7LWwNUOemzRaPq1GrIt5nDISdoAiASq4x99BryyGnMoR70ePtDheEm1HZjm9uEDJJMN5/BIhkOrXxBG9106ibYMRmY4UAhfNgGFBWJx0CYv6IeYJ
-Lz7K9D02Xsh3wc0l7AykAu+PZt3ZKzyAFwChEoHUVEVDWy/zRaQjacy71rXYlC01q4EV2AsaSvp9CAMnUiemngZS8vIdoIb1MH2nAW174QiewbDLWqjuzv3yplWEll3dMen1Z9UbUYTDR/5Fd6fr2YUeUPyGMyChRlhlg1ak5qQ= YBpfdy7Hnq58tt52gP0VInClCymn5UJbT5oi40Y1t9NFx72ZknkMxgECAl/BAF2KWYZAsDGoWTspitnYcKFtnbnXyy/pdSXzIygq7ZNJQ7zliOdnEYE24/S/PHbE873CV5LxBdZJP5dgNzdbXT3IMtMu39aWM9LmMfTue5gSY7s=
-ALtCZG2F7IEbNfTXUvcdIqHs4KM56+2550sTvQrRGdpBxcW3R7tRtmgJsIE3+QcBFA0oHpD+8Ai3K9qJzD5xmFH42tZqCzEmnFQ2xiYqhEPhZRaDCChqy8aOtB8NfFKSqEF8ukttK00rhBnS8b/a2n8OWfYq85TQTa6op7hNakDr B7C95XzVCMc2EMwXtNjRYqeIw5/0BPKn7b4kiVLCNEuNTLKx1LHxXVtLJEN2uhtsK8EOUuZWuvaqbET5f6AM8YOyUsArnsqsrNGXvrpLoy6SVEPG4gLRMS0QZhxKqJXYt9BXa3pkR+5rywrUkJLmItf0diqgCGqztx2DTKkW6LA=
-dpLNIfL7pIfO1uzINTKejcV74jVbBkuaq6j/zzMzGNd11iueF3LUM1gBixBSC0kAkNnPDq8NN8vRZ+v1D0REKnBT4pebu4vKeZ+6lJhRq0M8raA17ljSpDATUlP78EqfLVO+qZI0h+gH+Uv3ta7EG5old+JKGeiReTcBwv99H9g= AMkyhD/cHlzqeKrUbdVz199YelKtSRVtYaACYD9aWe/+bkL9NH3ZFcgKfrNlf2zxLeI6jc6Fq8m2MsgYgzMeC92Fbq0V/Sf4fqCSgxsYuGMeZoN3XRrmZFhnfaZzEBGa+x4KGmnPeABlVaxXo/RlPLKAC3sPHjDDXeWOOzUEweUr
-YXRoPaclsYK65uX7UOCBsAcHQLpJFWmva2WxGbdPOVoVb7c7AgYTwdnUxwhU7DB+I2hMaZHFaC8ENJq4dNOnjkaPhLlbDOpOWEm8oaWXaqZ+Ts2AWPV4rmqTMeabYMz0Nu1C6Ps4yob0G1m7V1FdPeFDHXb2ee3i5Lfve6fflDY= AL/Bfo7ejUJAdoj1Wfit3J4uvHQXGzj8RWlvQ9W5VOQIB/lp9/jXbaoAfrcfUmyGZ7DuBFH3LML4gIIKJaG+1YY+bJWyYp1rO7JIkG6cC6hYyDD7StBX+2UlOD5RF/K1ATobJdYF2XXrNQBnrAJJRQbm48eX4n+nrweZqc/9lRRf
-AIs4+CtsykmU+iP9UGUrjlRXovcXeioRiLpSkz3UijqPd3ih2uf2ArxK0uMEEuvVDhrbJ2fa6T99SeWxIE99EfK0EXJh8aVtY/wrkx+k1Qank8wOvOz7O8ZhYqNoCeLnAt688Bozt8zvdF1Zmq1GL3PksB+rEtgX7KA6nOhErP0b AIPMliWxz34CSBI5847dOwg5gxAhlQH6j1LsV76JA7MRxkr3XaKmQH85P3CMynSOrLdTlsAUHZC/7nN6DLkpF6GT5Iw/tjwdx731FxZGJcaH3WzVKfwEE8vFiNdYmRQH+PB/0O20D+jaTgapwuk/aXkS6qPfgkXdFqUaof8lB52k
-AM+USJ+Rp8V8iJ9WLvzgRLPGYOzl3LItcbSXKKOb4FRPwaxF8kBoR2P9k+h9sT3ThkjFEADpkENV/VyLD1PAfhMy3cPe2tj4FTBK9JR5r1tstO0vDqDhgoEQF3/npTa4vNmu4Qf7z7YXIAc2W9VmZUUHKgI45URtZnvsbUjBPkGw AKYkkIGB6PhuZxOkxOYjGLmW2+fAhR8AosV2M/BFsOWTlR7PzeaUXMicGE2c1NCbf4HKyVrJujB5J9FSdLPQ2BVRTE3ggS602B92NZjm+WxXtvldnHCO+chIViniphgK03U6afOxBXjx4EBjF+BOLOx4GeIYpmuIj9jguB8Q++Vw
-MKnMxNBsGImCcon+j9GjdHrxPJjsCW0aFtUatI958reEKCnx9Uw4kC5d6zIcNTdx4GPOxxHnEsUD1Djst7Q95+285qBVVQ6q8GQ5+ct52RmAeo+1UylxbCY3vfc9EvcX+CCY2L5LAyCQk9gdf1BID1UghYC67yEUerH1UFObgBg= ALNy1gvhT9K5l98SXwvMOV6DmheDkILvzcuHEvk+QiramVmhFjbIGXteBhHTDciTAVTlAbzq6jU20zLXlbAtRJ6OETRMEHhBFbQ7xaDHiuZU/RboOi6Cu4cEmklfgmgkG/x1AK0dNsTd8kvBMfKoF98o4kI9SV6vDzatZebuVWQC
-DjYiEZuhQ0PoubF0oc7ikZ1iM4pjv36NkliOSHUR3UVHhF1LjWGAhkefvRmmFKW1mQqPs50/NZInOBhMPtKZI8YCs3mMd3PXIelil/WnurFZVMFz/V/Gta66NiYMsOBve/MaEmcqUMBQVxfBSe152kJvWlJI2SEmdjccmFRXfLc= bQYU3zXoxkJrfpKAJYpKJ1NpflFkOzGcxoOnYzJaW/4kY+X8M8l0jMRXBlPjwKjqWrIcUNJQQ6Kh8p2MFVg8FiOC0iBa1P3X4dxYnkO6lfSKUG+LP4Hm/+YpOstsY3Yg4OWzErdbxk/OgWdmncdqqzClasKy72qUexGiq7bPQ/c=
-Gd1SZqi4z4+FeDYtBzEVbdGNMSBurfRcKPtf4b2pDDhKB48PjfYxyCx9WD2oV8apiFJMiHiTRvUUiqsAkpgt4jNkeUIYgndD2N1Og/2o7N9H6UN9BsqCDIIZMg4YKdQ9n/pzoFssmgvxYF/uJsYC+2mo2KLV02HvxdZsAeI22Fs= WhAvx15RHiSqKsk2FBwYBZlx+sqt0Jg+vpw17QHz+h335EYOFxUiIRS+DBwxYMn8Ob/7DF41i96O8xk7bU768ASvjyWUn0XDL3XwYjPz4BCFLIutytzwJ9PEhjCfP9WOXRVnx0PpLt86M9c/ONBtwWLA++xD4ECJ6xX7ucYuFUU=
-BtxpG1qgtOK5jqUN3C+8kiCjp7ndZi2CyfJiGHpG/IxxOerOBW/jHuni2eVzsoQc1a4KcwVKY1q/RnQWZhzGY/sVLU1Gv3E7fm27A1pZblxKxCDiffqRI8KzC7S9ETKGro4dSlHmbIJEq+cRhdqkyS8Z36hted35wKfTGAu98vE= V70Wwr+k+JnYEiqgxV4xq4LNiOeJzSLFy8LxX4nCOWRcS86LRA5+k1gE0yr89snUIgLylKeNFn5Ns135OzOBS4KLWdpzq9QR6bxTXIAc31NCtO6AjTYOz28Psgdo04ChcSrndUXV+M5iNZ1QILj7605c7c167MruDtWyHLb3dr8=
-M8h40nf7qVdMDes2YyTeXhjbWcnipaxV6ie+e0QUqh4EH4rBfcXIhg/ZEo2JTcz9bZnrhi1fOXvmroYwDwmGgeKdgU/jpKwXmo9DQXwTn91+RHamo5QSTdz/UaIZpMGCMwKtV/p/XC8jZZ+a55DlOAvbPcYqPBv2+25SnQTvyss= e6b5r1OR3q1+yVtu6JkYtl7ljLI6zeJ9oNI7fqOGpWzJ02ughlfPDjwbaRd+U0jWIsbydJ/t3Ghgv9mO15JJ+wovbAE/cKELQ7HQ2RyaECA7QOX04VX9tBRs56fvDGqtrMZcQzbIBCLEwoKuHiYbNWkaU1x+OS/Ra8k5U1bcxvA=
-JZrJGiM/Ti6lvsJ+JDPFjkdqLVksGj4wxHOfyAXkR4s8xe1L4HpNaKtCXDNB3FPvZSm5d3Ukcpo8RY0c+D+nuqt1As78JCi155E/PIA3f6GKnkaUh+aZyfdi8RuGqmIiDqUt3wf/BzRon3eDACVJvOKq3jLGnp5HitU/lw++olU= AI6an9hXFuBkeN+HXpN8ydgxa5eNBqg1drWFLcDJvd3SdlK5llDUBy3iDxAh8e6Ci6/qE8ch/wZq3sVsXMzasaV6bgRA96OrlrTdPh4jprP8xJ8U0A3drDhbgUnM9ZiBdACzYQixI+x+gXNi/9u8sz+OmY2qQd0GFkeMzDDSqm/j
-AIPirUSO7mEIbkTANS/1m9yjn8GfWJzby3NrcU/ed5Q79qxS7c8hRtowy/Ne8EyTcN10BmLiSk5U3ug9QqdaDY7n56CNcTf2nYLxes1qjO7COrsMpcB4zwGu9pDFFm+pJUwXUbAw3qc+zF3ittzlvptPppYX0h5uAw1eLcEio4mD KsE13DLIMAfW4kbBKTwtRqBbzDwTeHTq2TPSCNzKoNySARItMB1RC6r/7C871z0TI3LmniBg5WxsPLLYD4oG39/fTKCthX3r/+x4bS64d+LG1FQ9xwdHHv93cEP20Dy4N3+RDnirKRyCac7iWkjKpoHolQ2KHnOvdaIbH1ZCcuM=
-LNZYmPoFqd7O5yfNSzFAEa5RU7B4DD/C7GgAPaX7c75I3iEgavEztUGl5nMtnsn2UVoezA2WFMRmWdx9MBt5aOj47/fe+xPyH0UUb3nhypvHDu43ReJ4x9yf6p0wtcipdflb2oAYzcyXAelZ1vguRoZz0MUecwnO5vNmMjmv9Xg= AKMPDFZkfuo7TjUTnXpgvJ4HT3Nw4zxRnwj7lGKWd5AGOwYkhQ5hmd/Mm1gvh16V5BmKH5IO6m5MKcWVZ2xsYbvvpgrNfe4RHJ8j2NJ69570VkW7rl26BvVXNvOGKQj7BtkIuMnNCaIQgqfpRW1xUIfyzlQWW2FSokZVMsM1lJcJ
-bXvV1W7j1UO8T6v5DnNgnwNPEC1V+GT8TE7sUkroN+uDHHITqtzHwONen5A3YXSqQPTtglHakOheZar9jabarh5SIlYV1HtlLOFrebVDDnBhXi2QqxoNcX9N5no62KjYR+meCtSDlCKKA7HoLLIdiX/UzHVUh/Q5V6rC22LhHSg= FXDs7zTsgnnZQqcNeUL5cXVRGFSjNGg6pFfR8drsnxgrPuBTyApyHBZDCDHCCJnAS/MRQS7VCvOI/+aPUgNfXDyTnKL04BQtA97Itadsau2CK5t2a3HN8IPB7OFovfnng+BpDdL4Ljv+nMXmIykKyeyvpIuxE1MC2XkzPtCmF4Q=
-SorBHV5vDBgoyBTZqJuofXgEvOIyceF0e8SEHhp/bQarAh2DC66IaNvMr7NtNXi0HtAoyDh0TDpRNWXgMgVvRMmObrXSzcLrLNCBVtL9hlXBfgAVnuLAQ6gmimgQZe7lqVxRbNpFdFKykiFQIS+jmEfVOy1GgEJ1k+u7WgNDpS8= C7hNUfxiz1k5v+xb8syrMf21Fek5Nm9TSPXB35uRF5StB+DDbhB1KTMRdsfcm3RcFnLxvRsecj4oQQMfYPb4s/biYpWr8H9qgVLSiBENjX07HLK7FYWY6u6/NIx2I62fR0XcXIlwwAtOcd+vTKJvLp6EAmc3lDpz5qsMPkvdtg==
-OoWH6NQCJUkhx33Y5/JuJG7zxDIP3gm9y+AgsMKhbsCwKJ7POv/o1VJ8YmmRsWTmPT7pzPsIRZv8lX5ZMuTQL3YuOpyYkpYXswMsh6/DcOVwXPV4gukic2nXS1Ndxk34I2to6W1gkVg5NYuXgruxa/MvPqFD0x+LIFeuEMem4Kg= AIM/4NB6m6YoGLbyRehgNbHU2K5IRmg7Z6hZPfV82M4aqgI7opMWqQtbDHadr2mlNhAENtPW/yxZaOP8eTjZkhrPB02frVvbRJ1Jl594ZU4qqOtjtKMz82EmLfPh9DDuGAxnx4OT294JGLl4TxaAYBudKCHzuNHXP1dZWkU+ABY9
-OQgo34O6AM9ucDgniT4GsoQFrFcGJqURcVyM2qJYA9bEhMyLsPnnVV0F19o5VvIipw039MDmjqTWLZc0Msr1UA2Dka7/sTFoqaFN71AQvAOVvGURZo9WMzHwvxbZFCdr5ErfhnV5W3XetENctiASf6lTshM2wH+Sek+lVT43t3U= AJoGDl5ABmWUPB6klrOAlFkwDC1O6Er5vv1aqwtt9tV2zXZuXeHo83GQv8q6NtKuv7qqtG4KgeUDexSrlxNxXnPXEn1GBkhvm+A+Hdyj4nWHdccKX40NMhW64EtPNgaNvJYife3e+9kGOSWTbZ+TDDMrgzIrdTPrCBrPO2v+yxUF
-Y4xjipK7diqbTeq9CtqbW0Q16M8jcmvZWWFpUwknwB6BQ5yHs0rNyYxPPetUOvNRPaVfwKpBFJTOkOSYyMPDOatNc4q+OCRx1DkllRdDLWESlVX3VWIXoQ9KcLjWX1zDETdWQAoDHjs2pt5oIDcLZWDSFYcPjvG2UIDKhISZBaY= ZkbvZn9vfsvM9uPDjGKtjDGTI+fvn66JJ4G/c3m0Ghs53wqoHBwmn4DpMfjdcrfy4JfaD6c39ESvFw9TOzDdmoRu3IT7gjnldCTCBzZ6QJWr+PraHLHhq3EAiqW49HB2Z3W1LLn0V1jT3BjUPTK6mo8psAutkEFHqdGz8Kk+xcA=
-Jl8XDwQrwjDWwRkz5laiYh4BhbS8odblZAWzdkThvuF1UKLCljrzx9i03mLTPdu9S7V3owlvIN7bVAx4x2yazcRpMTKjN948NKsfAQMuKvqMCgwCw3EaFW+yYmSujsEGWK5VSfFUQwiLuAw5B3E7L6UaNuihYc5e3wudNWO1egw= cl61la3SXlS3B6Wktl74VTZPRWJBhAf1ZnYxs3Rcm2+RgsbwsYdZVxoIYiQK4EgmHBxm2mGz0GC+rsCZtPpE46gxDL32djP5D1ZMGJYo3FgXu2AF7Nn38HcOaJHEqA+QcTnjkIvGUXulH5nMNAB0bgbY4xQhS5U5/4p2tXyz0Jw=
+ALoiAzCdasNc/t7MCd3BY7fTDx5qIVKWvYLryQ7Q3uNcNst3aoL9n6FQe1C206UinrA09ql2OROhMVX0kyATCRvoNKLEDM9zfGqqQIloMFMNy5X+0169UWhQy6V/0L6nKU7hRAgs3W8FUD5xijB3EM4zUxG3CPazdftlIvUr/R45 AMcX69rlxfc7lHnl1FY87FHf6U7KITe1gyuU1bPnIuAkaBiB0SOdRO7Uom2HY0uudFj6F14Q+/Th3DkaJ+lLDqH9Vm93OZ5YEHAmmMqlpOKzXUcU+9mz2d0ML4Nlr+yeMbmttlysrNgjvwozARCZvSqJ8haY0dK5xe9/LTOlJlqa
+AIL26kKBfCaXyXNgrtahVTPqY3DAW4iwkZHfEeWRV4EuHnCvNdG+2NHRXbjokKnR3+MfZZHrJXj+UzID6ce0DyhYIOMR59CP4fvEOydG3XVzTuIsDK2SqLAZd/8LDVe0jTRL0LKG4Ai3+4mdlDarFyHNRZ91VFTpPFomQS4mv/NT fXB3HGZWLUNc1WQzkHN7b1rTWC0rGqJvgPohU+CDnZrKU259i/8cEGFqGWMzL4ReR5bEV/LjbGFSUfa5TvrP8yHyRnQrQ3ZaGW0f1Wz6rJioODqoapQQK+AwgREsROZyCPw8KAjYLz1mDNRpLENg03vB5TKU9eNh3FZAJf5GBO8=
+AIbDYlOTUXENW4WFDkuTGzD+ae65BfcdnaKEMBgvL0bizGrG+0rf7fXtWPEEVBqGQ9h/hP/v0oTIV2rcjpweTmyP9GqIFRQv1pIFrIR03qnsWYXyA3Tw3JXBsKwgxAiyOiOuxj+T4rSHdObYT7BDa8jDPCIItF6wh7rROTu935Nj AMLcirsSlIwh/xKAzE7BJnUlrHC+VaMP/dNyWbQ5B9GCpjNGz3z/fdO+8FYrfiYTNlNsMFQQKAPNSXwcPsg0gL1NZ6hL1TbJBmGm9d3Jfp1V55SYfjNrmLR7/1F+EBdCuUhTR6LRTMCWHZbJQv1Ay0csxBHYo9xRBHLUQOrLdV8L
+IycdHiy5VfT/ZTw5HfnBt7kPV2S5GxZjy6EDWpd9ViQ3iBj3qTehio5pMx6Tl+dbN0H77cmNldORs6XIJHxmvPYWjh41BKV+EBUQnbHWgSjY2LqSMG4Q5LrLoN1sVCrxctY4CClne1GP040wppGy+Zn+d8AxUxZlHcoYQmoUD74= AJNfL6W94ntqdMR1PE0NJAPKs8Ph3gh+dGBW2hgBOlDUKuSmKW3UcLXrlASks2bwlrCIR8mOuS/mJ6Zfh8toCZV0nRgTMFMV1TNtIgj9V+NdW+IEH7EjxvTPDwtSSBgvfrnHjWW6XBxjoFgrlMIsHn147oLueJJuLvr3FFweuHnc
+AKZQ42fsyLxL+z5y01Ezo2ul+AGNsWuXWZnsqQcuusX8pHocv/vxaWptpqUFqymjSURaLS93ZBHD3LuT43K7J9DDLllTqNNzg80fI2mEebxMUbfzSOEc7t4coTh3vXCMWvJYo5fDXquCy0RVGwPZ2I92UKoBSaKjN6fiU8MM9XDt JLHWENrxcrEwdQbMqFMBaAtgVClL3B4/lByGPZVjAu7HorZFkxYHU7yi9VPQWl3hd6NhFIZLe7MYfCv9It/baeRdZqtiQWA3/qeJ+boynZpZUQY8TeDUgE12O4ykjoRzppircP5xl1f5VyFz0K0vZcCegxK9uXUT1vNTaGqWEAI=
+a6H2Qz+qz5bPOdhGUMiRJtBiunYJ6YH0ehDC+X86qP2SY1EzQLgyrcXo9xeKE3Ck+bv+Bvja8vjaqYqsDYg2vfuR7LnRn7D7NyecyCOeu6raHoBR9gFh/BkI38unT/0DmFlPVHAaYNMwa9rXFonwz5ofYp0hedoElipV0wBmzdI= SMUtiopT5lVwfPW5a3lpnEc+fkx+K6l3Ni5fDlrjbQBKcnDrcupG6nieDLILvh3LV0EmTwSwthKCTDCIs3h8df+bN1eCsvWC8z0189Czsis5Xf6KxXfcu2JfkmEJOWxWC+fbHA8kGml4ASPCT7BV1dTyutw3u0YrONTDUGsr0xM=
+IIr7ddoKHJm0gqF90Tsxy6UDG3Bgeftso/3UAdGg0G1Nd3vMC0VLKF7qbXyfNVqUKE/EORBFl3GIDfO8EhtLaTzXNjPiCxJf8ZWLkfUhFjNm6SawFmlm49baC+iqj320clwcFwmx/LvCyKoqYEC1aTyR4af1qXH4j9znIiqDG7s= Md3Piz5CAmGY03uAfAUcvYEOS/VKGjaKkNw0sQ6axFtk2LlB0ua/7taXf3qBiZ77tQ/+HvHJCb7SgfC3wB23MVlApVGeY27X/GJl2ushWXizRgaJi5vw/OEd4/yebve3JeIeHqWurSHqQX0xHVx4c68OUW2mBzmb7UbvTDIRsrg=
+NTVz/x3JkOztoqz1gx8haCyPhjDDV2qpBX3bpxcTbGMbPVJV0y6hLYPiGjSduAU8C2HYiFwgA00dWOYy2XzgS/g49cxK/tdUt9CJwoHlbHzi4nns5wCCTYNk/odmYZKYBNjZqPkW07WCog8gjFCVdyZGfP3TCphdjrcpyR6ZNhg= OkRF5I0PiazSLqZcCUx0U5kWQJ/o15TKP463BX9lbm6NVmabNPSd4JLGAmSdYFL/pxUKVR1he9yjfUoLgTWYWzgmsb5F7PX0ZZkXu/SYbc3wGWpME7L7YSiqZxX0LHj4L7/EbTt4eOY0vTdHHFoiyVquW4REdIfA24ko1Ck/JvU=
+O9p26iA+A2aNOrbJjOAXfUgj/ood14BbxXJZ+bTc4eLMg8sVwuqzHFR8r5tjQA22o3ArQdpjRPD3PJdgLoW6Tc4Gf8rzJocBjP/3z7qYYWZn7mPCE7dxr1Yx2IWtaBRP91u973JnuL5dVFylcJbux/ytTxLeAnlTO3uHdXyO5Fo= ALGCzqcx3faQXN003Nv2SWaJRCSL6XC3SHKnjkksSkx4gbqBakvZ0nA8U8qo7LWwNUOemzRaPq1GrIt5nDISdoAiASq4x99BryyGnMoR70ePtDheEm1HZjm9uEDJJMN5/BIhkOrXxBG9106ibYMRmY4UAhfNgGFBWJx0CYv6IeYJ
+Lz7K9D02Xsh3wc0l7AykAu+PZt3ZKzyAFwChEoHUVEVDWy/zRaQjacy71rXYlC01q4EV2AsaSvp9CAMnUiemngZS8vIdoIb1MH2nAW174QiewbDLWqjuzv3yplWEll3dMen1Z9UbUYTDR/5Fd6fr2YUeUPyGMyChRlhlg1ak5qQ= YBpfdy7Hnq58tt52gP0VInClCymn5UJbT5oi40Y1t9NFx72ZknkMxgECAl/BAF2KWYZAsDGoWTspitnYcKFtnbnXyy/pdSXzIygq7ZNJQ7zliOdnEYE24/S/PHbE873CV5LxBdZJP5dgNzdbXT3IMtMu39aWM9LmMfTue5gSY7s=
+ALtCZG2F7IEbNfTXUvcdIqHs4KM56+2550sTvQrRGdpBxcW3R7tRtmgJsIE3+QcBFA0oHpD+8Ai3K9qJzD5xmFH42tZqCzEmnFQ2xiYqhEPhZRaDCChqy8aOtB8NfFKSqEF8ukttK00rhBnS8b/a2n8OWfYq85TQTa6op7hNakDr B7C95XzVCMc2EMwXtNjRYqeIw5/0BPKn7b4kiVLCNEuNTLKx1LHxXVtLJEN2uhtsK8EOUuZWuvaqbET5f6AM8YOyUsArnsqsrNGXvrpLoy6SVEPG4gLRMS0QZhxKqJXYt9BXa3pkR+5rywrUkJLmItf0diqgCGqztx2DTKkW6LA=
+dpLNIfL7pIfO1uzINTKejcV74jVbBkuaq6j/zzMzGNd11iueF3LUM1gBixBSC0kAkNnPDq8NN8vRZ+v1D0REKnBT4pebu4vKeZ+6lJhRq0M8raA17ljSpDATUlP78EqfLVO+qZI0h+gH+Uv3ta7EG5old+JKGeiReTcBwv99H9g= AMkyhD/cHlzqeKrUbdVz199YelKtSRVtYaACYD9aWe/+bkL9NH3ZFcgKfrNlf2zxLeI6jc6Fq8m2MsgYgzMeC92Fbq0V/Sf4fqCSgxsYuGMeZoN3XRrmZFhnfaZzEBGa+x4KGmnPeABlVaxXo/RlPLKAC3sPHjDDXeWOOzUEweUr
+YXRoPaclsYK65uX7UOCBsAcHQLpJFWmva2WxGbdPOVoVb7c7AgYTwdnUxwhU7DB+I2hMaZHFaC8ENJq4dNOnjkaPhLlbDOpOWEm8oaWXaqZ+Ts2AWPV4rmqTMeabYMz0Nu1C6Ps4yob0G1m7V1FdPeFDHXb2ee3i5Lfve6fflDY= AL/Bfo7ejUJAdoj1Wfit3J4uvHQXGzj8RWlvQ9W5VOQIB/lp9/jXbaoAfrcfUmyGZ7DuBFH3LML4gIIKJaG+1YY+bJWyYp1rO7JIkG6cC6hYyDD7StBX+2UlOD5RF/K1ATobJdYF2XXrNQBnrAJJRQbm48eX4n+nrweZqc/9lRRf
+AIs4+CtsykmU+iP9UGUrjlRXovcXeioRiLpSkz3UijqPd3ih2uf2ArxK0uMEEuvVDhrbJ2fa6T99SeWxIE99EfK0EXJh8aVtY/wrkx+k1Qank8wOvOz7O8ZhYqNoCeLnAt688Bozt8zvdF1Zmq1GL3PksB+rEtgX7KA6nOhErP0b AIPMliWxz34CSBI5847dOwg5gxAhlQH6j1LsV76JA7MRxkr3XaKmQH85P3CMynSOrLdTlsAUHZC/7nN6DLkpF6GT5Iw/tjwdx731FxZGJcaH3WzVKfwEE8vFiNdYmRQH+PB/0O20D+jaTgapwuk/aXkS6qPfgkXdFqUaof8lB52k
+AM+USJ+Rp8V8iJ9WLvzgRLPGYOzl3LItcbSXKKOb4FRPwaxF8kBoR2P9k+h9sT3ThkjFEADpkENV/VyLD1PAfhMy3cPe2tj4FTBK9JR5r1tstO0vDqDhgoEQF3/npTa4vNmu4Qf7z7YXIAc2W9VmZUUHKgI45URtZnvsbUjBPkGw AKYkkIGB6PhuZxOkxOYjGLmW2+fAhR8AosV2M/BFsOWTlR7PzeaUXMicGE2c1NCbf4HKyVrJujB5J9FSdLPQ2BVRTE3ggS602B92NZjm+WxXtvldnHCO+chIViniphgK03U6afOxBXjx4EBjF+BOLOx4GeIYpmuIj9jguB8Q++Vw
+MKnMxNBsGImCcon+j9GjdHrxPJjsCW0aFtUatI958reEKCnx9Uw4kC5d6zIcNTdx4GPOxxHnEsUD1Djst7Q95+285qBVVQ6q8GQ5+ct52RmAeo+1UylxbCY3vfc9EvcX+CCY2L5LAyCQk9gdf1BID1UghYC67yEUerH1UFObgBg= ALNy1gvhT9K5l98SXwvMOV6DmheDkILvzcuHEvk+QiramVmhFjbIGXteBhHTDciTAVTlAbzq6jU20zLXlbAtRJ6OETRMEHhBFbQ7xaDHiuZU/RboOi6Cu4cEmklfgmgkG/x1AK0dNsTd8kvBMfKoF98o4kI9SV6vDzatZebuVWQC
+DjYiEZuhQ0PoubF0oc7ikZ1iM4pjv36NkliOSHUR3UVHhF1LjWGAhkefvRmmFKW1mQqPs50/NZInOBhMPtKZI8YCs3mMd3PXIelil/WnurFZVMFz/V/Gta66NiYMsOBve/MaEmcqUMBQVxfBSe152kJvWlJI2SEmdjccmFRXfLc= bQYU3zXoxkJrfpKAJYpKJ1NpflFkOzGcxoOnYzJaW/4kY+X8M8l0jMRXBlPjwKjqWrIcUNJQQ6Kh8p2MFVg8FiOC0iBa1P3X4dxYnkO6lfSKUG+LP4Hm/+YpOstsY3Yg4OWzErdbxk/OgWdmncdqqzClasKy72qUexGiq7bPQ/c=
+Gd1SZqi4z4+FeDYtBzEVbdGNMSBurfRcKPtf4b2pDDhKB48PjfYxyCx9WD2oV8apiFJMiHiTRvUUiqsAkpgt4jNkeUIYgndD2N1Og/2o7N9H6UN9BsqCDIIZMg4YKdQ9n/pzoFssmgvxYF/uJsYC+2mo2KLV02HvxdZsAeI22Fs= WhAvx15RHiSqKsk2FBwYBZlx+sqt0Jg+vpw17QHz+h335EYOFxUiIRS+DBwxYMn8Ob/7DF41i96O8xk7bU768ASvjyWUn0XDL3XwYjPz4BCFLIutytzwJ9PEhjCfP9WOXRVnx0PpLt86M9c/ONBtwWLA++xD4ECJ6xX7ucYuFUU=
+BtxpG1qgtOK5jqUN3C+8kiCjp7ndZi2CyfJiGHpG/IxxOerOBW/jHuni2eVzsoQc1a4KcwVKY1q/RnQWZhzGY/sVLU1Gv3E7fm27A1pZblxKxCDiffqRI8KzC7S9ETKGro4dSlHmbIJEq+cRhdqkyS8Z36hted35wKfTGAu98vE= V70Wwr+k+JnYEiqgxV4xq4LNiOeJzSLFy8LxX4nCOWRcS86LRA5+k1gE0yr89snUIgLylKeNFn5Ns135OzOBS4KLWdpzq9QR6bxTXIAc31NCtO6AjTYOz28Psgdo04ChcSrndUXV+M5iNZ1QILj7605c7c167MruDtWyHLb3dr8=
+M8h40nf7qVdMDes2YyTeXhjbWcnipaxV6ie+e0QUqh4EH4rBfcXIhg/ZEo2JTcz9bZnrhi1fOXvmroYwDwmGgeKdgU/jpKwXmo9DQXwTn91+RHamo5QSTdz/UaIZpMGCMwKtV/p/XC8jZZ+a55DlOAvbPcYqPBv2+25SnQTvyss= e6b5r1OR3q1+yVtu6JkYtl7ljLI6zeJ9oNI7fqOGpWzJ02ughlfPDjwbaRd+U0jWIsbydJ/t3Ghgv9mO15JJ+wovbAE/cKELQ7HQ2RyaECA7QOX04VX9tBRs56fvDGqtrMZcQzbIBCLEwoKuHiYbNWkaU1x+OS/Ra8k5U1bcxvA=
+JZrJGiM/Ti6lvsJ+JDPFjkdqLVksGj4wxHOfyAXkR4s8xe1L4HpNaKtCXDNB3FPvZSm5d3Ukcpo8RY0c+D+nuqt1As78JCi155E/PIA3f6GKnkaUh+aZyfdi8RuGqmIiDqUt3wf/BzRon3eDACVJvOKq3jLGnp5HitU/lw++olU= AI6an9hXFuBkeN+HXpN8ydgxa5eNBqg1drWFLcDJvd3SdlK5llDUBy3iDxAh8e6Ci6/qE8ch/wZq3sVsXMzasaV6bgRA96OrlrTdPh4jprP8xJ8U0A3drDhbgUnM9ZiBdACzYQixI+x+gXNi/9u8sz+OmY2qQd0GFkeMzDDSqm/j
+AIPirUSO7mEIbkTANS/1m9yjn8GfWJzby3NrcU/ed5Q79qxS7c8hRtowy/Ne8EyTcN10BmLiSk5U3ug9QqdaDY7n56CNcTf2nYLxes1qjO7COrsMpcB4zwGu9pDFFm+pJUwXUbAw3qc+zF3ittzlvptPppYX0h5uAw1eLcEio4mD KsE13DLIMAfW4kbBKTwtRqBbzDwTeHTq2TPSCNzKoNySARItMB1RC6r/7C871z0TI3LmniBg5WxsPLLYD4oG39/fTKCthX3r/+x4bS64d+LG1FQ9xwdHHv93cEP20Dy4N3+RDnirKRyCac7iWkjKpoHolQ2KHnOvdaIbH1ZCcuM=
+LNZYmPoFqd7O5yfNSzFAEa5RU7B4DD/C7GgAPaX7c75I3iEgavEztUGl5nMtnsn2UVoezA2WFMRmWdx9MBt5aOj47/fe+xPyH0UUb3nhypvHDu43ReJ4x9yf6p0wtcipdflb2oAYzcyXAelZ1vguRoZz0MUecwnO5vNmMjmv9Xg= AKMPDFZkfuo7TjUTnXpgvJ4HT3Nw4zxRnwj7lGKWd5AGOwYkhQ5hmd/Mm1gvh16V5BmKH5IO6m5MKcWVZ2xsYbvvpgrNfe4RHJ8j2NJ69570VkW7rl26BvVXNvOGKQj7BtkIuMnNCaIQgqfpRW1xUIfyzlQWW2FSokZVMsM1lJcJ
+bXvV1W7j1UO8T6v5DnNgnwNPEC1V+GT8TE7sUkroN+uDHHITqtzHwONen5A3YXSqQPTtglHakOheZar9jabarh5SIlYV1HtlLOFrebVDDnBhXi2QqxoNcX9N5no62KjYR+meCtSDlCKKA7HoLLIdiX/UzHVUh/Q5V6rC22LhHSg= FXDs7zTsgnnZQqcNeUL5cXVRGFSjNGg6pFfR8drsnxgrPuBTyApyHBZDCDHCCJnAS/MRQS7VCvOI/+aPUgNfXDyTnKL04BQtA97Itadsau2CK5t2a3HN8IPB7OFovfnng+BpDdL4Ljv+nMXmIykKyeyvpIuxE1MC2XkzPtCmF4Q=
+SorBHV5vDBgoyBTZqJuofXgEvOIyceF0e8SEHhp/bQarAh2DC66IaNvMr7NtNXi0HtAoyDh0TDpRNWXgMgVvRMmObrXSzcLrLNCBVtL9hlXBfgAVnuLAQ6gmimgQZe7lqVxRbNpFdFKykiFQIS+jmEfVOy1GgEJ1k+u7WgNDpS8= C7hNUfxiz1k5v+xb8syrMf21Fek5Nm9TSPXB35uRF5StB+DDbhB1KTMRdsfcm3RcFnLxvRsecj4oQQMfYPb4s/biYpWr8H9qgVLSiBENjX07HLK7FYWY6u6/NIx2I62fR0XcXIlwwAtOcd+vTKJvLp6EAmc3lDpz5qsMPkvdtg==
+OoWH6NQCJUkhx33Y5/JuJG7zxDIP3gm9y+AgsMKhbsCwKJ7POv/o1VJ8YmmRsWTmPT7pzPsIRZv8lX5ZMuTQL3YuOpyYkpYXswMsh6/DcOVwXPV4gukic2nXS1Ndxk34I2to6W1gkVg5NYuXgruxa/MvPqFD0x+LIFeuEMem4Kg= AIM/4NB6m6YoGLbyRehgNbHU2K5IRmg7Z6hZPfV82M4aqgI7opMWqQtbDHadr2mlNhAENtPW/yxZaOP8eTjZkhrPB02frVvbRJ1Jl594ZU4qqOtjtKMz82EmLfPh9DDuGAxnx4OT294JGLl4TxaAYBudKCHzuNHXP1dZWkU+ABY9
+OQgo34O6AM9ucDgniT4GsoQFrFcGJqURcVyM2qJYA9bEhMyLsPnnVV0F19o5VvIipw039MDmjqTWLZc0Msr1UA2Dka7/sTFoqaFN71AQvAOVvGURZo9WMzHwvxbZFCdr5ErfhnV5W3XetENctiASf6lTshM2wH+Sek+lVT43t3U= AJoGDl5ABmWUPB6klrOAlFkwDC1O6Er5vv1aqwtt9tV2zXZuXeHo83GQv8q6NtKuv7qqtG4KgeUDexSrlxNxXnPXEn1GBkhvm+A+Hdyj4nWHdccKX40NMhW64EtPNgaNvJYife3e+9kGOSWTbZ+TDDMrgzIrdTPrCBrPO2v+yxUF
+Y4xjipK7diqbTeq9CtqbW0Q16M8jcmvZWWFpUwknwB6BQ5yHs0rNyYxPPetUOvNRPaVfwKpBFJTOkOSYyMPDOatNc4q+OCRx1DkllRdDLWESlVX3VWIXoQ9KcLjWX1zDETdWQAoDHjs2pt5oIDcLZWDSFYcPjvG2UIDKhISZBaY= ZkbvZn9vfsvM9uPDjGKtjDGTI+fvn66JJ4G/c3m0Ghs53wqoHBwmn4DpMfjdcrfy4JfaD6c39ESvFw9TOzDdmoRu3IT7gjnldCTCBzZ6QJWr+PraHLHhq3EAiqW49HB2Z3W1LLn0V1jT3BjUPTK6mo8psAutkEFHqdGz8Kk+xcA=
+Jl8XDwQrwjDWwRkz5laiYh4BhbS8odblZAWzdkThvuF1UKLCljrzx9i03mLTPdu9S7V3owlvIN7bVAx4x2yazcRpMTKjN948NKsfAQMuKvqMCgwCw3EaFW+yYmSujsEGWK5VSfFUQwiLuAw5B3E7L6UaNuihYc5e3wudNWO1egw= cl61la3SXlS3B6Wktl74VTZPRWJBhAf1ZnYxs3Rcm2+RgsbwsYdZVxoIYiQK4EgmHBxm2mGz0GC+rsCZtPpE46gxDL32djP5D1ZMGJYo3FgXu2AF7Nn38HcOaJHEqA+QcTnjkIvGUXulH5nMNAB0bgbY4xQhS5U5/4p2tXyz0Jw=
diff --git a/src/DotNetOpenAuth.Test/Settings.StyleCop b/src/DotNetOpenAuth.Test/Settings.StyleCop
index 551e87c..ae8997c 100644
--- a/src/DotNetOpenAuth.Test/Settings.StyleCop
+++ b/src/DotNetOpenAuth.Test/Settings.StyleCop
@@ -1,48 +1,48 @@
-<StyleCopSettings Version="4.3">
- <Analyzers>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.DocumentationRules">
- <Rules>
- <Rule Name="ElementsMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- <Rule Name="EnumerationItemsMustBeDocumented">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.LayoutRules">
- <Rules>
- <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules">
- <AnalyzerSettings>
- <CollectionProperty Name="Hungarian">
- <Value>op</Value>
- <Value>rp</Value>
- <Value>v</Value>
- </CollectionProperty>
- </AnalyzerSettings>
- </Analyzer>
- <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.MaintainabilityRules">
- <Rules>
- <Rule Name="FieldsMustBePrivate">
- <RuleSettings>
- <BooleanProperty Name="Enabled">False</BooleanProperty>
- </RuleSettings>
- </Rule>
- </Rules>
- <AnalyzerSettings />
- </Analyzer>
- </Analyzers>
+<StyleCopSettings Version="4.3">
+ <Analyzers>
+ <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.DocumentationRules">
+ <Rules>
+ <Rule Name="ElementsMustBeDocumented">
+ <RuleSettings>
+ <BooleanProperty Name="Enabled">False</BooleanProperty>
+ </RuleSettings>
+ </Rule>
+ <Rule Name="EnumerationItemsMustBeDocumented">
+ <RuleSettings>
+ <BooleanProperty Name="Enabled">False</BooleanProperty>
+ </RuleSettings>
+ </Rule>
+ </Rules>
+ <AnalyzerSettings />
+ </Analyzer>
+ <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.LayoutRules">
+ <Rules>
+ <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
+ <RuleSettings>
+ <BooleanProperty Name="Enabled">False</BooleanProperty>
+ </RuleSettings>
+ </Rule>
+ </Rules>
+ <AnalyzerSettings />
+ </Analyzer>
+ <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules">
+ <AnalyzerSettings>
+ <CollectionProperty Name="Hungarian">
+ <Value>op</Value>
+ <Value>rp</Value>
+ <Value>v</Value>
+ </CollectionProperty>
+ </AnalyzerSettings>
+ </Analyzer>
+ <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.MaintainabilityRules">
+ <Rules>
+ <Rule Name="FieldsMustBePrivate">
+ <RuleSettings>
+ <BooleanProperty Name="Enabled">False</BooleanProperty>
+ </RuleSettings>
+ </Rule>
+ </Rules>
+ <AnalyzerSettings />
+ </Analyzer>
+ </Analyzers>
</StyleCopSettings> \ No newline at end of file
diff --git a/src/DotNetOpenAuth/Messaging/Bindings/Bindings.cd b/src/DotNetOpenAuth/Messaging/Bindings/Bindings.cd
index 6205b92..e52e81e 100644
--- a/src/DotNetOpenAuth/Messaging/Bindings/Bindings.cd
+++ b/src/DotNetOpenAuth/Messaging/Bindings/Bindings.cd
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ClassDiagram MajorVersion="1" MinorVersion="1">
- <Class Name="DotNetOpenAuth.Messaging.Bindings.InvalidSignatureException" Collapsed="true">
- <Position X="8.25" Y="2" Width="1.5" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\InvalidSignatureException.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.Messaging.Bindings.ReplayedMessageException" Collapsed="true">
- <Position X="6" Y="2" Width="1.5" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\ReplayedMessageException.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.Messaging.Bindings.ExpiredMessageException" Collapsed="true">
- <Position X="3.75" Y="2" Width="1.5" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\ExpiredMessageException.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.Messaging.ProtocolException" Collapsed="true">
- <Position X="6" Y="0.5" Width="1.5" />
- <TypeIdentifier>
- <HashCode>ICAMAAAAQAAAgAEAAIBAAAYgCgAAIAAAIACAACAAAAA=</HashCode>
- <FileName>Messaging\ProtocolException.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.Messaging.Bindings.StandardExpirationBindingElement" Collapsed="true">
- <Position X="1" Y="3" Width="2.75" />
- <TypeIdentifier>
- <HashCode>AAAAAAAgAAAARAAEAAAAAAAAAAIAAAAAAEAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\StandardExpirationBindingElement.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Interface Name="DotNetOpenAuth.Messaging.IProtocolMessage" Collapsed="true">
- <Position X="6" Y="3.5" Width="1.5" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\IProtocolMessage.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Interface Name="DotNetOpenAuth.Messaging.Bindings.IExpiringProtocolMessage" Collapsed="true">
- <Position X="3.75" Y="4.75" Width="2" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\IExpiringProtocolMessage.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Interface Name="DotNetOpenAuth.Messaging.Bindings.IReplayProtectedProtocolMessage" Collapsed="true">
- <Position X="6" Y="4.75" Width="2.5" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAA=</HashCode>
- <FileName>Messaging\Bindings\IReplayProtectedProtocolMessage.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Interface Name="DotNetOpenAuth.Messaging.IChannelBindingElement">
- <Position X="0.5" Y="0.5" Width="2" />
- <TypeIdentifier>
- <HashCode>BAAAAAAgAAAAAAAEAAAAAAAAAAAAAAAAAEAAAAAAAAA=</HashCode>
- <FileName>Messaging\IChannelBindingElement.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Interface Name="DotNetOpenAuth.OAuth.ChannelElements.ITamperResistantOAuthMessage" Collapsed="true">
- <Position X="8.75" Y="4.75" Width="2.5" />
- <TypeIdentifier>
- <HashCode>AIAAAAAAAAAAgAAAAIAAAgAAAAAAIAQAAAAAAAAAAAA=</HashCode>
- <FileName>OAuth\ChannelElements\ITamperResistantOAuthMessage.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Font Name="Segoe UI" Size="9" />
+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1">
+ <Class Name="DotNetOpenAuth.Messaging.Bindings.InvalidSignatureException" Collapsed="true">
+ <Position X="8.25" Y="2" Width="1.5" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\InvalidSignatureException.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.Messaging.Bindings.ReplayedMessageException" Collapsed="true">
+ <Position X="6" Y="2" Width="1.5" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\ReplayedMessageException.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.Messaging.Bindings.ExpiredMessageException" Collapsed="true">
+ <Position X="3.75" Y="2" Width="1.5" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\ExpiredMessageException.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.Messaging.ProtocolException" Collapsed="true">
+ <Position X="6" Y="0.5" Width="1.5" />
+ <TypeIdentifier>
+ <HashCode>ICAMAAAAQAAAgAEAAIBAAAYgCgAAIAAAIACAACAAAAA=</HashCode>
+ <FileName>Messaging\ProtocolException.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.Messaging.Bindings.StandardExpirationBindingElement" Collapsed="true">
+ <Position X="1" Y="3" Width="2.75" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAgAAAARAAEAAAAAAAAAAIAAAAAAEAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\StandardExpirationBindingElement.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Interface Name="DotNetOpenAuth.Messaging.IProtocolMessage" Collapsed="true">
+ <Position X="6" Y="3.5" Width="1.5" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\IProtocolMessage.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Interface Name="DotNetOpenAuth.Messaging.Bindings.IExpiringProtocolMessage" Collapsed="true">
+ <Position X="3.75" Y="4.75" Width="2" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\IExpiringProtocolMessage.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Interface Name="DotNetOpenAuth.Messaging.Bindings.IReplayProtectedProtocolMessage" Collapsed="true">
+ <Position X="6" Y="4.75" Width="2.5" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAA=</HashCode>
+ <FileName>Messaging\Bindings\IReplayProtectedProtocolMessage.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Interface Name="DotNetOpenAuth.Messaging.IChannelBindingElement">
+ <Position X="0.5" Y="0.5" Width="2" />
+ <TypeIdentifier>
+ <HashCode>BAAAAAAgAAAAAAAEAAAAAAAAAAAAAAAAAEAAAAAAAAA=</HashCode>
+ <FileName>Messaging\IChannelBindingElement.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Interface Name="DotNetOpenAuth.OAuth.ChannelElements.ITamperResistantOAuthMessage" Collapsed="true">
+ <Position X="8.75" Y="4.75" Width="2.5" />
+ <TypeIdentifier>
+ <HashCode>AIAAAAAAAAAAgAAAAIAAAgAAAAAAIAQAAAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\ChannelElements\ITamperResistantOAuthMessage.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Font Name="Segoe UI" Size="9" />
</ClassDiagram> \ No newline at end of file
diff --git a/src/DotNetOpenAuth/Messaging/Exceptions.cd b/src/DotNetOpenAuth/Messaging/Exceptions.cd
index 8798cd7..0119753 100644
--- a/src/DotNetOpenAuth/Messaging/Exceptions.cd
+++ b/src/DotNetOpenAuth/Messaging/Exceptions.cd
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ClassDiagram MajorVersion="1" MinorVersion="1">
- <Class Name="DotNetOpenAuth.Messaging.ProtocolException" Collapsed="true">
- <Position X="3.25" Y="0.75" Width="1.5" />
- <TypeIdentifier>
- <HashCode>ICAMAAAAQAAAgAEAAIBAAAYgCgAAIAAAIACAACAAAAA=</HashCode>
- <FileName>Messaging\ProtocolException.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.Messaging.Bindings.InvalidSignatureException" Collapsed="true">
- <Position X="3" Y="2.25" Width="2" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\InvalidSignatureException.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.Messaging.Bindings.ReplayedMessageException" Collapsed="true">
- <Position X="5.25" Y="2.25" Width="2.25" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\ReplayedMessageException.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.Messaging.Bindings.ExpiredMessageException">
- <Position X="0.75" Y="2.25" Width="2" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>Messaging\Bindings\ExpiredMessageException.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Font Name="Segoe UI" Size="9" />
+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1">
+ <Class Name="DotNetOpenAuth.Messaging.ProtocolException" Collapsed="true">
+ <Position X="3.25" Y="0.75" Width="1.5" />
+ <TypeIdentifier>
+ <HashCode>ICAMAAAAQAAAgAEAAIBAAAYgCgAAIAAAIACAACAAAAA=</HashCode>
+ <FileName>Messaging\ProtocolException.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.Messaging.Bindings.InvalidSignatureException" Collapsed="true">
+ <Position X="3" Y="2.25" Width="2" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\InvalidSignatureException.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.Messaging.Bindings.ReplayedMessageException" Collapsed="true">
+ <Position X="5.25" Y="2.25" Width="2.25" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\ReplayedMessageException.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.Messaging.Bindings.ExpiredMessageException">
+ <Position X="0.75" Y="2.25" Width="2" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>Messaging\Bindings\ExpiredMessageException.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Font Name="Segoe UI" Size="9" />
</ClassDiagram> \ No newline at end of file
diff --git a/src/DotNetOpenAuth/OAuth/ChannelElements/IConsumerCertificateProvider.cs b/src/DotNetOpenAuth/OAuth/ChannelElements/IConsumerCertificateProvider.cs
index 22c8542..7e6ae54 100644
--- a/src/DotNetOpenAuth/OAuth/ChannelElements/IConsumerCertificateProvider.cs
+++ b/src/DotNetOpenAuth/OAuth/ChannelElements/IConsumerCertificateProvider.cs
@@ -1,23 +1,23 @@
-//-----------------------------------------------------------------------
-// <copyright file="IConsumerCertificateProvider.cs" company="Andrew Arnott">
-// Copyright (c) Andrew Arnott. All rights reserved.
-// </copyright>
-//-----------------------------------------------------------------------
-
-namespace DotNetOpenAuth.OAuth.ChannelElements {
- using System.Security.Cryptography.X509Certificates;
-
- /// <summary>
- /// A provider that hosts can implement to hook up their RSA-SHA1 binding elements
- /// to their list of known Consumers' certificates.
- /// </summary>
- public interface IConsumerCertificateProvider {
- /// <summary>
- /// Gets the certificate that can be used to verify the signature of an incoming
- /// message from a Consumer.
- /// </summary>
- /// <param name="consumerMessage">The incoming message from some Consumer.</param>
- /// <returns>The public key from the Consumer's X.509 Certificate, if one can be found; otherwise <c>null</c>.</returns>
- X509Certificate2 GetCertificate(ITamperResistantOAuthMessage consumerMessage);
- }
-}
+//-----------------------------------------------------------------------
+// <copyright file="IConsumerCertificateProvider.cs" company="Andrew Arnott">
+// Copyright (c) Andrew Arnott. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace DotNetOpenAuth.OAuth.ChannelElements {
+ using System.Security.Cryptography.X509Certificates;
+
+ /// <summary>
+ /// A provider that hosts can implement to hook up their RSA-SHA1 binding elements
+ /// to their list of known Consumers' certificates.
+ /// </summary>
+ public interface IConsumerCertificateProvider {
+ /// <summary>
+ /// Gets the certificate that can be used to verify the signature of an incoming
+ /// message from a Consumer.
+ /// </summary>
+ /// <param name="consumerMessage">The incoming message from some Consumer.</param>
+ /// <returns>The public key from the Consumer's X.509 Certificate, if one can be found; otherwise <c>null</c>.</returns>
+ X509Certificate2 GetCertificate(ITamperResistantOAuthMessage consumerMessage);
+ }
+}
diff --git a/src/DotNetOpenAuth/OAuth/ChannelElements/RsaSha1SigningBindingElement.cs b/src/DotNetOpenAuth/OAuth/ChannelElements/RsaSha1SigningBindingElement.cs
index 0a3b259..536e17f 100644
--- a/src/DotNetOpenAuth/OAuth/ChannelElements/RsaSha1SigningBindingElement.cs
+++ b/src/DotNetOpenAuth/OAuth/ChannelElements/RsaSha1SigningBindingElement.cs
@@ -1,114 +1,114 @@
-//-----------------------------------------------------------------------
-// <copyright file="RsaSha1SigningBindingElement.cs" company="Andrew Arnott">
-// Copyright (c) Andrew Arnott. All rights reserved.
-// </copyright>
-//-----------------------------------------------------------------------
-
-namespace DotNetOpenAuth.OAuth.ChannelElements {
- using System;
- using System.Security.Cryptography;
- using System.Security.Cryptography.X509Certificates;
- using System.Text;
- using DotNetOpenAuth.Messaging;
-
- /// <summary>
- /// A binding element that signs outgoing messages and verifies the signature on incoming messages.
- /// </summary>
- public class RsaSha1SigningBindingElement : SigningBindingElementBase {
- /// <summary>
- /// Initializes a new instance of the <see cref="RsaSha1SigningBindingElement"/> class
- /// for use by Consumers.
- /// </summary>
- /// <param name="signingCertificate">The certificate used to sign outgoing messages.</param>
- public RsaSha1SigningBindingElement(X509Certificate2 signingCertificate)
- : this() {
- if (signingCertificate == null) {
- throw new ArgumentNullException("signingCertificate");
- }
-
- this.SigningCertificate = signingCertificate;
- }
-
- /// <summary>
- /// Initializes a new instance of the <see cref="RsaSha1SigningBindingElement"/> class
- /// for use by Service Providers.
- /// </summary>
- public RsaSha1SigningBindingElement()
- : base("RSA-SHA1") {
- }
-
- /// <summary>
- /// Gets or sets the certificate used to sign outgoing messages.
- /// </summary>
- public X509Certificate2 SigningCertificate { get; set; }
-
- /// <summary>
- /// Gets or sets the consumer certificate provider.
- /// </summary>
- public IConsumerCertificateProvider ConsumerCertificateProvider { get; set; }
-
- /// <summary>
- /// Calculates a signature for a given message.
- /// </summary>
- /// <param name="message">The message to sign.</param>
- /// <returns>The signature for the message.</returns>
- /// <remarks>
- /// This method signs the message per OAuth 1.0 section 9.3.
- /// </remarks>
- protected override string GetSignature(ITamperResistantOAuthMessage message) {
- if (message == null) {
- throw new ArgumentNullException("message");
- }
-
- if (this.SigningCertificate == null) {
- throw new InvalidOperationException(OAuthStrings.X509CertificateNotProvidedForSigning);
- }
-
- string signatureBaseString = ConstructSignatureBaseString(message);
- byte[] data = Encoding.ASCII.GetBytes(signatureBaseString);
- var provider = (RSACryptoServiceProvider)this.SigningCertificate.PublicKey.Key;
- byte[] binarySignature = provider.SignData(data, "SHA1");
- string base64Signature = Convert.ToBase64String(binarySignature);
- return base64Signature;
- }
-
- /// <summary>
- /// Determines whether the signature on some message is valid.
- /// </summary>
- /// <param name="message">The message to check the signature on.</param>
- /// <returns>
- /// <c>true</c> if the signature on the message is valid; otherwise, <c>false</c>.
- /// </returns>
- protected override bool IsSignatureValid(ITamperResistantOAuthMessage message) {
- if (this.ConsumerCertificateProvider == null) {
- throw new InvalidOperationException(OAuthStrings.ConsumerCertificateProviderNotAvailable);
- }
-
- string signatureBaseString = ConstructSignatureBaseString(message);
- byte[] data = Encoding.ASCII.GetBytes(signatureBaseString);
-
- byte[] carriedSignature = Convert.FromBase64String(message.Signature);
-
- X509Certificate2 cert = this.ConsumerCertificateProvider.GetCertificate(message);
- if (cert == null) {
- Logger.WarnFormat("Incoming message from consumer '{0}' could not be matched with an appropriate X.509 certificate for signature verification.", message.ConsumerKey);
- return false;
- }
-
- var provider = (RSACryptoServiceProvider)cert.PublicKey.Key;
- bool valid = provider.VerifyData(data, "SHA1", carriedSignature);
- return valid;
- }
-
- /// <summary>
- /// Clones this instance.
- /// </summary>
- /// <returns>A new instance of the binding element.</returns>
- protected override ITamperProtectionChannelBindingElement Clone() {
- return new RsaSha1SigningBindingElement() {
- ConsumerCertificateProvider = this.ConsumerCertificateProvider,
- SigningCertificate = this.SigningCertificate,
- };
- }
- }
-}
+//-----------------------------------------------------------------------
+// <copyright file="RsaSha1SigningBindingElement.cs" company="Andrew Arnott">
+// Copyright (c) Andrew Arnott. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace DotNetOpenAuth.OAuth.ChannelElements {
+ using System;
+ using System.Security.Cryptography;
+ using System.Security.Cryptography.X509Certificates;
+ using System.Text;
+ using DotNetOpenAuth.Messaging;
+
+ /// <summary>
+ /// A binding element that signs outgoing messages and verifies the signature on incoming messages.
+ /// </summary>
+ public class RsaSha1SigningBindingElement : SigningBindingElementBase {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="RsaSha1SigningBindingElement"/> class
+ /// for use by Consumers.
+ /// </summary>
+ /// <param name="signingCertificate">The certificate used to sign outgoing messages.</param>
+ public RsaSha1SigningBindingElement(X509Certificate2 signingCertificate)
+ : this() {
+ if (signingCertificate == null) {
+ throw new ArgumentNullException("signingCertificate");
+ }
+
+ this.SigningCertificate = signingCertificate;
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="RsaSha1SigningBindingElement"/> class
+ /// for use by Service Providers.
+ /// </summary>
+ public RsaSha1SigningBindingElement()
+ : base("RSA-SHA1") {
+ }
+
+ /// <summary>
+ /// Gets or sets the certificate used to sign outgoing messages.
+ /// </summary>
+ public X509Certificate2 SigningCertificate { get; set; }
+
+ /// <summary>
+ /// Gets or sets the consumer certificate provider.
+ /// </summary>
+ public IConsumerCertificateProvider ConsumerCertificateProvider { get; set; }
+
+ /// <summary>
+ /// Calculates a signature for a given message.
+ /// </summary>
+ /// <param name="message">The message to sign.</param>
+ /// <returns>The signature for the message.</returns>
+ /// <remarks>
+ /// This method signs the message per OAuth 1.0 section 9.3.
+ /// </remarks>
+ protected override string GetSignature(ITamperResistantOAuthMessage message) {
+ if (message == null) {
+ throw new ArgumentNullException("message");
+ }
+
+ if (this.SigningCertificate == null) {
+ throw new InvalidOperationException(OAuthStrings.X509CertificateNotProvidedForSigning);
+ }
+
+ string signatureBaseString = ConstructSignatureBaseString(message);
+ byte[] data = Encoding.ASCII.GetBytes(signatureBaseString);
+ var provider = (RSACryptoServiceProvider)this.SigningCertificate.PublicKey.Key;
+ byte[] binarySignature = provider.SignData(data, "SHA1");
+ string base64Signature = Convert.ToBase64String(binarySignature);
+ return base64Signature;
+ }
+
+ /// <summary>
+ /// Determines whether the signature on some message is valid.
+ /// </summary>
+ /// <param name="message">The message to check the signature on.</param>
+ /// <returns>
+ /// <c>true</c> if the signature on the message is valid; otherwise, <c>false</c>.
+ /// </returns>
+ protected override bool IsSignatureValid(ITamperResistantOAuthMessage message) {
+ if (this.ConsumerCertificateProvider == null) {
+ throw new InvalidOperationException(OAuthStrings.ConsumerCertificateProviderNotAvailable);
+ }
+
+ string signatureBaseString = ConstructSignatureBaseString(message);
+ byte[] data = Encoding.ASCII.GetBytes(signatureBaseString);
+
+ byte[] carriedSignature = Convert.FromBase64String(message.Signature);
+
+ X509Certificate2 cert = this.ConsumerCertificateProvider.GetCertificate(message);
+ if (cert == null) {
+ Logger.WarnFormat("Incoming message from consumer '{0}' could not be matched with an appropriate X.509 certificate for signature verification.", message.ConsumerKey);
+ return false;
+ }
+
+ var provider = (RSACryptoServiceProvider)cert.PublicKey.Key;
+ bool valid = provider.VerifyData(data, "SHA1", carriedSignature);
+ return valid;
+ }
+
+ /// <summary>
+ /// Clones this instance.
+ /// </summary>
+ /// <returns>A new instance of the binding element.</returns>
+ protected override ITamperProtectionChannelBindingElement Clone() {
+ return new RsaSha1SigningBindingElement() {
+ ConsumerCertificateProvider = this.ConsumerCertificateProvider,
+ SigningCertificate = this.SigningCertificate,
+ };
+ }
+ }
+}
diff --git a/src/DotNetOpenAuth/OAuth/ClassDiagram.cd b/src/DotNetOpenAuth/OAuth/ClassDiagram.cd
index 460b4f3..f56fd83 100644
--- a/src/DotNetOpenAuth/OAuth/ClassDiagram.cd
+++ b/src/DotNetOpenAuth/OAuth/ClassDiagram.cd
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="NameAndType">
- <Class Name="DotNetOpenAuth.DesktopConsumer">
- <Position X="11.5" Y="5.25" Width="4.75" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAEAAAAAAABAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>OAuth\DesktopConsumer.cs</FileName>
- <NewMemberFileName>WebConsumer.cs</NewMemberFileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.WebConsumer">
- <Position X="6.25" Y="5.25" Width="5" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAA=</HashCode>
- <FileName>OAuth\WebConsumer.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.ServiceProviderDescription">
- <Position X="0.5" Y="5.25" Width="5" />
- <Compartments>
- <Compartment Name="Fields" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>AAACAAgAAAAEAAAQAAAAAAAAAAAAACAAAAAgAAAAAAA=</HashCode>
- <FileName>OAuth\ServiceProviderDescription.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.ServiceProvider">
- <Position X="1" Y="0.5" Width="6" />
- <Compartments>
- <Compartment Name="Fields" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>EAoAAAsgAAAAIAAAEAAAAAAAAAAIAAEAAQAIAAwAAAA=</HashCode>
- <FileName>OAuth\ServiceProvider.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.ConsumerBase">
- <Position X="9" Y="0.5" Width="4.5" />
- <TypeIdentifier>
- <HashCode>ACAAAAEgAAAAAAAAAAAABgAAAAAIAAAAAQAAAAABABA=</HashCode>
- <FileName>OAuth\ConsumerBase.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Font Name="Segoe UI" Size="9" />
+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="NameAndType">
+ <Class Name="DotNetOpenAuth.DesktopConsumer">
+ <Position X="11.5" Y="5.25" Width="4.75" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAEAAAAAAABAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\DesktopConsumer.cs</FileName>
+ <NewMemberFileName>WebConsumer.cs</NewMemberFileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.WebConsumer">
+ <Position X="6.25" Y="5.25" Width="5" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAA=</HashCode>
+ <FileName>OAuth\WebConsumer.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.ServiceProviderDescription">
+ <Position X="0.5" Y="5.25" Width="5" />
+ <Compartments>
+ <Compartment Name="Fields" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>AAACAAgAAAAEAAAQAAAAAAAAAAAAACAAAAAgAAAAAAA=</HashCode>
+ <FileName>OAuth\ServiceProviderDescription.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.ServiceProvider">
+ <Position X="1" Y="0.5" Width="6" />
+ <Compartments>
+ <Compartment Name="Fields" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>EAoAAAsgAAAAIAAAEAAAAAAAAAAIAAEAAQAIAAwAAAA=</HashCode>
+ <FileName>OAuth\ServiceProvider.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.ConsumerBase">
+ <Position X="9" Y="0.5" Width="4.5" />
+ <TypeIdentifier>
+ <HashCode>ACAAAAEgAAAAAAAAAAAABgAAAAAIAAAAAQAAAAABABA=</HashCode>
+ <FileName>OAuth\ConsumerBase.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Font Name="Segoe UI" Size="9" />
</ClassDiagram> \ No newline at end of file
diff --git a/src/DotNetOpenAuth/OAuth/Messages/OAuth Messages.cd b/src/DotNetOpenAuth/OAuth/Messages/OAuth Messages.cd
index 9b474a9..f5526d2 100644
--- a/src/DotNetOpenAuth/OAuth/Messages/OAuth Messages.cd
+++ b/src/DotNetOpenAuth/OAuth/Messages/OAuth Messages.cd
@@ -1,164 +1,164 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ClassDiagram MajorVersion="1" MinorVersion="1" GroupingSetting="Access">
- <Comment CommentText="Messages from Service Provider">
- <Position X="7.912" Y="0.715" Height="0.291" Width="2.02" />
- </Comment>
- <Comment CommentText="Messages from Consumer">
- <Position X="4.36" Y="0.683" Height="0.291" Width="2.02" />
- </Comment>
- <Class Name="DotNetOpenAuth.OAuth.Messages.UnauthorizedTokenRequest">
- <Position X="4.25" Y="1" Width="3" />
- <Compartments>
- <Compartment Name="Internal" Collapsed="true" />
- <Compartment Name="Private" Collapsed="true" />
- <Compartment Name="Methods" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAA=</HashCode>
- <FileName>OAuth\Messages\UnauthorizedTokenRequest.cs</FileName>
- </TypeIdentifier>
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.UnauthorizedTokenResponse">
- <Position X="7.5" Y="1.5" Width="3" />
- <Members>
- <Property Name="ITokenContainingMessage.Token" Hidden="true" />
- <Property Name="ITokenSecretContainingMessage.TokenSecret" Hidden="true" />
- </Members>
- <Compartments>
- <Compartment Name="Methods" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>AAAAAAACAAAAAAAAAAEAAAAAAIAAIAAAIAAAAAAAAAA=</HashCode>
- <FileName>OAuth\Messages\UnauthorizedTokenResponse.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.SignedMessageBase">
- <Position X="0.5" Y="1.5" Width="3.5" />
- <Members>
- <Property Name="ITamperResistantOAuthMessage.ConsumerSecret" Hidden="true" />
- <Property Name="ITamperResistantOAuthMessage.HttpMethod" Hidden="true" />
- <Property Name="ITamperResistantOAuthMessage.SignatureMethod" Hidden="true" />
- <Property Name="ITamperResistantOAuthMessage.TokenSecret" Hidden="true" />
- <Property Name="ITamperResistantProtocolMessage.Signature" Hidden="true" />
- </Members>
- <TypeIdentifier>
- <HashCode>AIAAFAAAAIAAAAACgICAAgAAAgAAIAQAAAEAIgAQAAE=</HashCode>
- <FileName>OAuth\Messages\SignedMessageBase.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.UserAuthorizationRequest">
- <Position X="4.25" Y="3" Width="3" />
- <Members>
- <Property Name="ITokenContainingMessage.Token" Hidden="true" />
- </Members>
- <Compartments>
- <Compartment Name="Methods" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>AAAAAAACAAAAAAAAAAAAAAAAAIAAAAAAIAAAAAAAQAA=</HashCode>
- <FileName>OAuth\Messages\UserAuthorizationRequest.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.UserAuthorizationResponse">
- <Position X="7.5" Y="4.5" Width="3" />
- <Members>
- <Property Name="ITokenContainingMessage.Token" Hidden="true" />
- </Members>
- <Compartments>
- <Compartment Name="Methods" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>AAAAAAACAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>OAuth\Messages\UserAuthorizationResponse.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.AuthorizedTokenResponse">
- <Position X="7.5" Y="6.25" Width="3" />
- <Members>
- <Property Name="ITokenContainingMessage.Token" Hidden="true" />
- <Property Name="ITokenSecretContainingMessage.TokenSecret" Hidden="true" />
- </Members>
- <Compartments>
- <Compartment Name="Methods" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>AAAAAAACAAAAAAAAAAAAAAAAEAAAIAAAIAAAAAAAAAA=</HashCode>
- <FileName>OAuth\Messages\AuthorizedTokenResponse.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.AuthorizedTokenRequest">
- <Position X="4.25" Y="5.5" Width="3" />
- <Members>
- <Property Name="ITokenContainingMessage.Token" Hidden="true" />
- </Members>
- <Compartments>
- <Compartment Name="Methods" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>AAAAAAACQAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>OAuth\Messages\AuthorizedTokenRequest.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.AccessProtectedResourceRequest">
- <Position X="4.25" Y="7.75" Width="3" />
- <Members>
- <Property Name="ITokenContainingMessage.Token" Hidden="true" />
- </Members>
- <TypeIdentifier>
- <HashCode>AAAAAAACAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAA=</HashCode>
- <FileName>OAuth\Messages\AccessProtectedResourceRequest.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Class Name="DotNetOpenAuth.OAuth.Messages.MessageBase">
- <Position X="11" Y="1" Width="3.5" />
- <Members>
- <Field Name="extraData" Hidden="true" />
- <Property Name="IDirectedProtocolMessage.Recipient" Hidden="true" />
- <Method Name="IMessage.EnsureValidMessage" Hidden="true" />
- <Property Name="IMessage.ExtraData" Hidden="true" />
- <Property Name="IMessage.Version" Hidden="true" />
- <Property Name="IProtocolMessage.RequiredProtection" Hidden="true" />
- <Property Name="IProtocolMessage.Transport" Hidden="true" />
- <Field Name="protectionRequired" Hidden="true" />
- <Field Name="recipient" Hidden="true" />
- <Field Name="transport" Hidden="true" />
- </Members>
- <Compartments>
- <Compartment Name="Fields" Collapsed="true" />
- </Compartments>
- <TypeIdentifier>
- <HashCode>ICAMAAQAYAAAgAkEAIAIAAYACgAEYBAAIECBACAAAAA=</HashCode>
- <FileName>OAuth\Messages\MessageBase.cs</FileName>
- </TypeIdentifier>
- <Lollipop Position="0.2" />
- </Class>
- <Interface Name="DotNetOpenAuth.ChannelElements.ITamperResistantOAuthMessage">
- <Position X="11.25" Y="5.25" Width="2.5" />
- <TypeIdentifier>
- <HashCode>AIAAAAAAAAAAAAAAAIAAAgAAAAAAIAQAAAAAAAAAAAA=</HashCode>
- <FileName>ChannelElements\ITamperResistantOAuthMessage.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Interface Name="DotNetOpenAuth.OAuth.Messages.ITokenContainingMessage">
- <Position X="1" Y="6" Width="2" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA=</HashCode>
- <FileName>OAuth\Messages\ITokenContainingMessage.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Interface Name="DotNetOpenAuth.OAuth.Messages.ITokenSecretContainingMessage">
- <Position X="1" Y="7.5" Width="2" />
- <TypeIdentifier>
- <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAA=</HashCode>
- <FileName>OAuth\Messages\ITokenSecretContainingMessage.cs</FileName>
- </TypeIdentifier>
- </Interface>
- <Font Name="Segoe UI" Size="9" />
+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1" GroupingSetting="Access">
+ <Comment CommentText="Messages from Service Provider">
+ <Position X="7.912" Y="0.715" Height="0.291" Width="2.02" />
+ </Comment>
+ <Comment CommentText="Messages from Consumer">
+ <Position X="4.36" Y="0.683" Height="0.291" Width="2.02" />
+ </Comment>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.UnauthorizedTokenRequest">
+ <Position X="4.25" Y="1" Width="3" />
+ <Compartments>
+ <Compartment Name="Internal" Collapsed="true" />
+ <Compartment Name="Private" Collapsed="true" />
+ <Compartment Name="Methods" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\Messages\UnauthorizedTokenRequest.cs</FileName>
+ </TypeIdentifier>
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.UnauthorizedTokenResponse">
+ <Position X="7.5" Y="1.5" Width="3" />
+ <Members>
+ <Property Name="ITokenContainingMessage.Token" Hidden="true" />
+ <Property Name="ITokenSecretContainingMessage.TokenSecret" Hidden="true" />
+ </Members>
+ <Compartments>
+ <Compartment Name="Methods" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>AAAAAAACAAAAAAAAAAEAAAAAAIAAIAAAIAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\Messages\UnauthorizedTokenResponse.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.SignedMessageBase">
+ <Position X="0.5" Y="1.5" Width="3.5" />
+ <Members>
+ <Property Name="ITamperResistantOAuthMessage.ConsumerSecret" Hidden="true" />
+ <Property Name="ITamperResistantOAuthMessage.HttpMethod" Hidden="true" />
+ <Property Name="ITamperResistantOAuthMessage.SignatureMethod" Hidden="true" />
+ <Property Name="ITamperResistantOAuthMessage.TokenSecret" Hidden="true" />
+ <Property Name="ITamperResistantProtocolMessage.Signature" Hidden="true" />
+ </Members>
+ <TypeIdentifier>
+ <HashCode>AIAAFAAAAIAAAAACgICAAgAAAgAAIAQAAAEAIgAQAAE=</HashCode>
+ <FileName>OAuth\Messages\SignedMessageBase.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.UserAuthorizationRequest">
+ <Position X="4.25" Y="3" Width="3" />
+ <Members>
+ <Property Name="ITokenContainingMessage.Token" Hidden="true" />
+ </Members>
+ <Compartments>
+ <Compartment Name="Methods" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>AAAAAAACAAAAAAAAAAAAAAAAAIAAAAAAIAAAAAAAQAA=</HashCode>
+ <FileName>OAuth\Messages\UserAuthorizationRequest.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.UserAuthorizationResponse">
+ <Position X="7.5" Y="4.5" Width="3" />
+ <Members>
+ <Property Name="ITokenContainingMessage.Token" Hidden="true" />
+ </Members>
+ <Compartments>
+ <Compartment Name="Methods" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>AAAAAAACAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\Messages\UserAuthorizationResponse.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.AuthorizedTokenResponse">
+ <Position X="7.5" Y="6.25" Width="3" />
+ <Members>
+ <Property Name="ITokenContainingMessage.Token" Hidden="true" />
+ <Property Name="ITokenSecretContainingMessage.TokenSecret" Hidden="true" />
+ </Members>
+ <Compartments>
+ <Compartment Name="Methods" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>AAAAAAACAAAAAAAAAAAAAAAAEAAAIAAAIAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\Messages\AuthorizedTokenResponse.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.AuthorizedTokenRequest">
+ <Position X="4.25" Y="5.5" Width="3" />
+ <Members>
+ <Property Name="ITokenContainingMessage.Token" Hidden="true" />
+ </Members>
+ <Compartments>
+ <Compartment Name="Methods" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>AAAAAAACQAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\Messages\AuthorizedTokenRequest.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.AccessProtectedResourceRequest">
+ <Position X="4.25" Y="7.75" Width="3" />
+ <Members>
+ <Property Name="ITokenContainingMessage.Token" Hidden="true" />
+ </Members>
+ <TypeIdentifier>
+ <HashCode>AAAAAAACAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\Messages\AccessProtectedResourceRequest.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Class Name="DotNetOpenAuth.OAuth.Messages.MessageBase">
+ <Position X="11" Y="1" Width="3.5" />
+ <Members>
+ <Field Name="extraData" Hidden="true" />
+ <Property Name="IDirectedProtocolMessage.Recipient" Hidden="true" />
+ <Method Name="IMessage.EnsureValidMessage" Hidden="true" />
+ <Property Name="IMessage.ExtraData" Hidden="true" />
+ <Property Name="IMessage.Version" Hidden="true" />
+ <Property Name="IProtocolMessage.RequiredProtection" Hidden="true" />
+ <Property Name="IProtocolMessage.Transport" Hidden="true" />
+ <Field Name="protectionRequired" Hidden="true" />
+ <Field Name="recipient" Hidden="true" />
+ <Field Name="transport" Hidden="true" />
+ </Members>
+ <Compartments>
+ <Compartment Name="Fields" Collapsed="true" />
+ </Compartments>
+ <TypeIdentifier>
+ <HashCode>ICAMAAQAYAAAgAkEAIAIAAYACgAEYBAAIECBACAAAAA=</HashCode>
+ <FileName>OAuth\Messages\MessageBase.cs</FileName>
+ </TypeIdentifier>
+ <Lollipop Position="0.2" />
+ </Class>
+ <Interface Name="DotNetOpenAuth.ChannelElements.ITamperResistantOAuthMessage">
+ <Position X="11.25" Y="5.25" Width="2.5" />
+ <TypeIdentifier>
+ <HashCode>AIAAAAAAAAAAAAAAAIAAAgAAAAAAIAQAAAAAAAAAAAA=</HashCode>
+ <FileName>ChannelElements\ITamperResistantOAuthMessage.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Interface Name="DotNetOpenAuth.OAuth.Messages.ITokenContainingMessage">
+ <Position X="1" Y="6" Width="2" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA=</HashCode>
+ <FileName>OAuth\Messages\ITokenContainingMessage.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Interface Name="DotNetOpenAuth.OAuth.Messages.ITokenSecretContainingMessage">
+ <Position X="1" Y="7.5" Width="2" />
+ <TypeIdentifier>
+ <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAA=</HashCode>
+ <FileName>OAuth\Messages\ITokenSecretContainingMessage.cs</FileName>
+ </TypeIdentifier>
+ </Interface>
+ <Font Name="Segoe UI" Size="9" />
</ClassDiagram> \ No newline at end of file
diff --git a/src/DotNetOpenAuth/OAuth/OAuthStrings.Designer.cs b/src/DotNetOpenAuth/OAuth/OAuthStrings.Designer.cs
index dcf6e8b..63e348a 100644
--- a/src/DotNetOpenAuth/OAuth/OAuthStrings.Designer.cs
+++ b/src/DotNetOpenAuth/OAuth/OAuthStrings.Designer.cs
@@ -1,153 +1,153 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:2.0.50727.3521
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace DotNetOpenAuth.OAuth {
- using System;
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class OAuthStrings {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal OAuthStrings() {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DotNetOpenAuth.OAuth.OAuthStrings", typeof(OAuthStrings).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to Cannot send access token to Consumer for request token &apos;{0}&apos; before it has been authorized..
- /// </summary>
- internal static string AccessTokenNotAuthorized {
- get {
- return ResourceManager.GetString("AccessTokenNotAuthorized", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to The access token &apos;{0}&apos; is invalid or expired..
- /// </summary>
- internal static string BadAccessTokenInProtectedResourceRequest {
- get {
- return ResourceManager.GetString("BadAccessTokenInProtectedResourceRequest", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to The RSA-SHA1 signing binding element&apos;s consumer certificate provider has not been set, so no incoming messages from consumers using this signature method can be verified..
- /// </summary>
- internal static string ConsumerCertificateProviderNotAvailable {
- get {
- return ResourceManager.GetString("ConsumerCertificateProviderNotAvailable", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to Failure looking up secret for consumer or token..
- /// </summary>
- internal static string ConsumerOrTokenSecretNotFound {
- get {
- return ResourceManager.GetString("ConsumerOrTokenSecretNotFound", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to An invalid OAuth message received and discarded..
- /// </summary>
- internal static string InvalidIncomingMessage {
- get {
- return ResourceManager.GetString("InvalidIncomingMessage", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to The {0} message included extra data which is not allowed..
- /// </summary>
- internal static string MessageNotAllowedExtraParameters {
- get {
- return ResourceManager.GetString("MessageNotAllowedExtraParameters", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to The request URL query MUST NOT contain any OAuth Protocol Parameters..
- /// </summary>
- internal static string RequestUrlMustNotHaveOAuthParameters {
- get {
- return ResourceManager.GetString("RequestUrlMustNotHaveOAuthParameters", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to The signing element already has been associated with a channel..
- /// </summary>
- internal static string SigningElementAlreadyAssociatedWithChannel {
- get {
- return ResourceManager.GetString("SigningElementAlreadyAssociatedWithChannel", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to All signing elements must offer the same message protection..
- /// </summary>
- internal static string SigningElementsMustShareSameProtection {
- get {
- return ResourceManager.GetString("SigningElementsMustShareSameProtection", resourceCulture);
- }
- }
-
- /// <summary>
- /// Looks up a localized string similar to The RSA-SHA1 signing binding element has not been set with a certificate for signing..
- /// </summary>
- internal static string X509CertificateNotProvidedForSigning {
- get {
- return ResourceManager.GetString("X509CertificateNotProvidedForSigning", resourceCulture);
- }
- }
- }
-}
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3521
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace DotNetOpenAuth.OAuth {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class OAuthStrings {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal OAuthStrings() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DotNetOpenAuth.OAuth.OAuthStrings", typeof(OAuthStrings).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Cannot send access token to Consumer for request token &apos;{0}&apos; before it has been authorized..
+ /// </summary>
+ internal static string AccessTokenNotAuthorized {
+ get {
+ return ResourceManager.GetString("AccessTokenNotAuthorized", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to The access token &apos;{0}&apos; is invalid or expired..
+ /// </summary>
+ internal static string BadAccessTokenInProtectedResourceRequest {
+ get {
+ return ResourceManager.GetString("BadAccessTokenInProtectedResourceRequest", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to The RSA-SHA1 signing binding element&apos;s consumer certificate provider has not been set, so no incoming messages from consumers using this signature method can be verified..
+ /// </summary>
+ internal static string ConsumerCertificateProviderNotAvailable {
+ get {
+ return ResourceManager.GetString("ConsumerCertificateProviderNotAvailable", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Failure looking up secret for consumer or token..
+ /// </summary>
+ internal static string ConsumerOrTokenSecretNotFound {
+ get {
+ return ResourceManager.GetString("ConsumerOrTokenSecretNotFound", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to An invalid OAuth message received and discarded..
+ /// </summary>
+ internal static string InvalidIncomingMessage {
+ get {
+ return ResourceManager.GetString("InvalidIncomingMessage", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to The {0} message included extra data which is not allowed..
+ /// </summary>
+ internal static string MessageNotAllowedExtraParameters {
+ get {
+ return ResourceManager.GetString("MessageNotAllowedExtraParameters", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to The request URL query MUST NOT contain any OAuth Protocol Parameters..
+ /// </summary>
+ internal static string RequestUrlMustNotHaveOAuthParameters {
+ get {
+ return ResourceManager.GetString("RequestUrlMustNotHaveOAuthParameters", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to The signing element already has been associated with a channel..
+ /// </summary>
+ internal static string SigningElementAlreadyAssociatedWithChannel {
+ get {
+ return ResourceManager.GetString("SigningElementAlreadyAssociatedWithChannel", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to All signing elements must offer the same message protection..
+ /// </summary>
+ internal static string SigningElementsMustShareSameProtection {
+ get {
+ return ResourceManager.GetString("SigningElementsMustShareSameProtection", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to The RSA-SHA1 signing binding element has not been set with a certificate for signing..
+ /// </summary>
+ internal static string X509CertificateNotProvidedForSigning {
+ get {
+ return ResourceManager.GetString("X509CertificateNotProvidedForSigning", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/src/DotNetOpenAuth/OAuth/OAuthStrings.resx b/src/DotNetOpenAuth/OAuth/OAuthStrings.resx
index 5ba71c7..3ba4da1 100644
--- a/src/DotNetOpenAuth/OAuth/OAuthStrings.resx
+++ b/src/DotNetOpenAuth/OAuth/OAuthStrings.resx
@@ -1,150 +1,150 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" use="required" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <data name="AccessTokenNotAuthorized" xml:space="preserve">
- <value>Cannot send access token to Consumer for request token '{0}' before it has been authorized.</value>
- </data>
- <data name="BadAccessTokenInProtectedResourceRequest" xml:space="preserve">
- <value>The access token '{0}' is invalid or expired.</value>
- </data>
- <data name="ConsumerCertificateProviderNotAvailable" xml:space="preserve">
- <value>The RSA-SHA1 signing binding element's consumer certificate provider has not been set, so no incoming messages from consumers using this signature method can be verified.</value>
- </data>
- <data name="ConsumerOrTokenSecretNotFound" xml:space="preserve">
- <value>Failure looking up secret for consumer or token.</value>
- </data>
- <data name="InvalidIncomingMessage" xml:space="preserve">
- <value>An invalid OAuth message received and discarded.</value>
- </data>
- <data name="MessageNotAllowedExtraParameters" xml:space="preserve">
- <value>The {0} message included extra data which is not allowed.</value>
- </data>
- <data name="RequestUrlMustNotHaveOAuthParameters" xml:space="preserve">
- <value>The request URL query MUST NOT contain any OAuth Protocol Parameters.</value>
- </data>
- <data name="SigningElementAlreadyAssociatedWithChannel" xml:space="preserve">
- <value>The signing element already has been associated with a channel.</value>
- </data>
- <data name="SigningElementsMustShareSameProtection" xml:space="preserve">
- <value>All signing elements must offer the same message protection.</value>
- </data>
- <data name="X509CertificateNotProvidedForSigning" xml:space="preserve">
- <value>The RSA-SHA1 signing binding element has not been set with a certificate for signing.</value>
- </data>
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <data name="AccessTokenNotAuthorized" xml:space="preserve">
+ <value>Cannot send access token to Consumer for request token '{0}' before it has been authorized.</value>
+ </data>
+ <data name="BadAccessTokenInProtectedResourceRequest" xml:space="preserve">
+ <value>The access token '{0}' is invalid or expired.</value>
+ </data>
+ <data name="ConsumerCertificateProviderNotAvailable" xml:space="preserve">
+ <value>The RSA-SHA1 signing binding element's consumer certificate provider has not been set, so no incoming messages from consumers using this signature method can be verified.</value>
+ </data>
+ <data name="ConsumerOrTokenSecretNotFound" xml:space="preserve">
+ <value>Failure looking up secret for consumer or token.</value>
+ </data>
+ <data name="InvalidIncomingMessage" xml:space="preserve">
+ <value>An invalid OAuth message received and discarded.</value>
+ </data>
+ <data name="MessageNotAllowedExtraParameters" xml:space="preserve">
+ <value>The {0} message included extra data which is not allowed.</value>
+ </data>
+ <data name="RequestUrlMustNotHaveOAuthParameters" xml:space="preserve">
+ <value>The request URL query MUST NOT contain any OAuth Protocol Parameters.</value>
+ </data>
+ <data name="SigningElementAlreadyAssociatedWithChannel" xml:space="preserve">
+ <value>The signing element already has been associated with a channel.</value>
+ </data>
+ <data name="SigningElementsMustShareSameProtection" xml:space="preserve">
+ <value>All signing elements must offer the same message protection.</value>
+ </data>
+ <data name="X509CertificateNotProvidedForSigning" xml:space="preserve">
+ <value>The RSA-SHA1 signing binding element has not been set with a certificate for signing.</value>
+ </data>
</root> \ No newline at end of file
diff --git a/tools/Sandcastle/Presentation/vs2005/Content/feedBack_content.xml b/tools/Sandcastle/Presentation/vs2005/Content/feedBack_content.xml
index c526b34..48cfd43 100644
--- a/tools/Sandcastle/Presentation/vs2005/Content/feedBack_content.xml
+++ b/tools/Sandcastle/Presentation/vs2005/Content/feedBack_content.xml
@@ -1,30 +1,30 @@
-<content xml:space="preserve">
-
- <item id="fb_alias">DotNetOAuth@googlegroups.com</item>
- <item id="fb_product"></item>
- <item id="fb_deliverable"></item>
-
- <item id="fb_body"></item>
-
- <item id="fb_headerFeedBack">Send Feedback</item>
-
-
- <!-- feedback values for sandcastle scenario -->
-
- <item id="feedback_alias"></item>
- <item id="feedback_product"></item>
- <item id="feedback_deliverable"></item>
- <item id="feedback_fileVersion"></item>
- <item id="feedback_topicVersion"></item>
- <item id="feedback_body"></item>
-
- <item id="fb_Introduction">We value your feedback. To rate this topic and send feedback about this topic to the documentation team, click a rating, and then click <b>Send Feedback</b>. For assistance with support issues, refer to the technical support information included with the product.</item>
-
- <item id="fb_Send">Send Feedback</item>
- <item id="fb_Poor">Poor</item>
- <item id="fb_Excellent">Outstanding</item>
- <item id="fb_EnterFeedbackText">To e-mail your feedback, click here:</item>
- <item id="fb_Title">Documentation Feedback</item>
- <item id="fb_altIcon">Display feedback instructions at the bottom of the page.</item>
-
+<content xml:space="preserve">
+
+ <item id="fb_alias">DotNetOAuth@googlegroups.com</item>
+ <item id="fb_product"></item>
+ <item id="fb_deliverable"></item>
+
+ <item id="fb_body"></item>
+
+ <item id="fb_headerFeedBack">Send Feedback</item>
+
+
+ <!-- feedback values for sandcastle scenario -->
+
+ <item id="feedback_alias"></item>
+ <item id="feedback_product"></item>
+ <item id="feedback_deliverable"></item>
+ <item id="feedback_fileVersion"></item>
+ <item id="feedback_topicVersion"></item>
+ <item id="feedback_body"></item>
+
+ <item id="fb_Introduction">We value your feedback. To rate this topic and send feedback about this topic to the documentation team, click a rating, and then click <b>Send Feedback</b>. For assistance with support issues, refer to the technical support information included with the product.</item>
+
+ <item id="fb_Send">Send Feedback</item>
+ <item id="fb_Poor">Poor</item>
+ <item id="fb_Excellent">Outstanding</item>
+ <item id="fb_EnterFeedbackText">To e-mail your feedback, click here:</item>
+ <item id="fb_Title">Documentation Feedback</item>
+ <item id="fb_altIcon">Display feedback instructions at the bottom of the page.</item>
+
</content>
diff --git a/tools/Sandcastle/Presentation/vs2005/Content/shared_content.xml b/tools/Sandcastle/Presentation/vs2005/Content/shared_content.xml
index 02bd6ee..05ff277 100644
--- a/tools/Sandcastle/Presentation/vs2005/Content/shared_content.xml
+++ b/tools/Sandcastle/Presentation/vs2005/Content/shared_content.xml
@@ -1,245 +1,245 @@
-<content xml:space="preserve"
- xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
-
- <!-- paths -->
- <item id="iconPath">../icons/{0}</item>
- <item id="scriptPath">../scripts/{0}</item>
- <item id="artPath">../art/{0}</item>
- <item id="stylePath">../styles/{0}</item>
-
- <!-- locale -->
- <item id="locale">en-us</item>
-
- <item id="desktopTechnologyAttribute">kbNetFramewk</item>
- <item id="netcfTechnologyAttribute">kbNetCompactFramewk</item>
- <item id="netcfDocSetAttribute">NetCompactFramework</item>
- <item id="xnaTechnologyAttribute">kbXNA</item>
- <item id="xnaDocSetAttribute">XNA</item>
-
- <!-- header -->
- <item id="header"><font color="DarkGray"></font><p/> </item>
-
- <!-- topic title -->
- <item id="nsrTitle">{0}</item>
-
- <!-- alert titles -->
- <item id="tipTitle"><b>Tip:</b></item>
- <item id="cautionTitle"><b>Caution:</b></item>
- <item id="securityTitle"><b>Security Note:</b></item>
- <item id="noteTitle"><b>Note:</b></item>
- <item id="importantTitle"><b>Important Note:</b></item>
- <item id="visualBasicTitle"><b>Visual Basic Note:</b></item>
- <item id="visualC#Title"><b>C# Note:</b></item>
- <item id="visualC++Title"><b>C++ Note:</b></item>
- <item id="visualJ#Title"><b>J# Note:</b></item>
-
- <!-- alert alt text -->
- <item id="tipAltText">Tip</item>
- <item id="cautionAltText">Caution note</item>
- <item id="securityAltText">Security note</item>
- <item id="noteAltText">Note</item>
- <item id="importantAltText">Important note</item>
- <item id="visualBasicAltText">Visual Basic note</item>
- <item id="visualC#AltText">C# note</item>
- <item id="visualC++AltText">C++ note</item>
- <item id="visualJ#AltText">J# note</item>
-
- <!-- code labels -->
- <item id="CSharpLabel">C#</item>
- <item id="VisualBasicLabel">Visual Basic</item>
- <item id="ManagedCPlusPlusLabel">Visual C++</item>
- <item id="JSharpLabel">J#</item>
- <item id="JScriptLabel">JScript</item>
-
- <!-- section titles -->
- <item id="exceptionsTitle">Exceptions</item>
- <item id="SeeAlso">See&#160;Also</item>
- <item id="SeeAlsoTasks">Tasks</item>
- <item id="SeeAlsoReference">Reference</item>
- <item id="SeeAlsoConcepts">Concepts</item>
- <item id="SeeAlsoOtherResources">Other Resources</item>
-
- <!-- tool tips -->
- <item id="collapseAllImage">CollapseAll image</item>
- <item id="expandAllImage">ExpandAll image</item>
- <item id="dropDownImage">DropDown image</item>
- <item id="dropDownHoverImage">DropDownHover image</item>
- <item id="collapseImage">Collapse image</item>
- <item id="expandImage">Expand Image</item>
- <item id="copyHoverImage">CopyHover image</item>
- <item id="copyImage">Copy image</item>
- <item id="footerImage">Footer image</item>
-
- <!-- product labels -->
- <item id="framework">.NET Framework</item>
- <item id="compact">.NET Compact Framework</item>
- <item id="everett">1.1</item>
- <item id="whidbey">2.0</item>
-
- <item id="copyCode">Copy Code</item>
-
-
- <!-- dynamic Link Information -->
- <item id="mshelpKTable"><MSHelp:ktable keywords='{0}' locHeader='Location' topicHeader = 'Topic' disambiguator='table' indexMoniker='!DefaultDynamicLinkIndex' /></item>
-
- <item id="dynamicLinkInlinePreFixText">For more information, see </item>
- <item id="dynamicLinkInlinePostFixText">.</item>
- <item id="dynamicLinkInlineSeperatorText"> and </item>
-
- <item id="remarksTitle">Remarks</item>
-
- <!-- devlangs filter -->
- <item id="devlangsDropdown">Code: {0}</item>
- <item id="all">All</item>
- <item id="multiple">Multiple</item>
- <item id="VisualBasic">Visual Basic</item>
- <item id="VBScript">Visual Basic Script</item>
- <item id="CSharp">C#</item>
- <item id="ManagedCPlusPlus">Visual C++</item>
- <item id="JSharp">J#</item>
- <item id="JScript">JScript</item>
- <item id="xmlLang">Xml</item>
- <item id="JavaScript">JavaScript</item>
- <item id="html">Html</item>
- <item id="visualbasicANDcsharp"><include item="VisualBasic"/> and <include item="CSharp"/></item>
- <item id="other"></item>
- <item id="XAML">XAML</item>
- <item id="usage">Usage</item>
- <item id="AspNet">ASP.NET</item>
- <item id="VisualBasicDeclaration"><include item="VisualBasic"/> (Declaration)</item>
- <item id="VisualBasicUsage"><include item="VisualBasic"/> (<include item="usage"/>)</item>
-
- <item id="dropdownSeparator"><span>&#160;&#160;&#160;&#160;</span></item>
- <item id="nsrLinkSeparator"> </item>
-
- <!-- language keywords -->
- <item id="nullKeyword">a null reference (<span class="keyword">Nothing</span> in Visual Basic)</item>
- <item id="staticKeyword"><span class="keyword">static</span> (<span class="keyword">Shared</span> in Visual Basic)</item>
- <item id="virtualKeyword"><span class="keyword">virtual</span> (<span class="keyword">Overridable</span> in Visual Basic)</item>
- <item id="trueKeyword"><span class="keyword">true</span> (<span class="keyword">True</span> in Visual Basic)</item>
- <item id="falseKeyword"><span class="keyword">false</span> (<span class="keyword">False</span> in Visual Basic)</item>
- <item id="abstractKeyword"><span class="keyword">abstract</span> (<span class="keyword">MustInherit</span> in Visual Basic)</item>
-
- <!-- transforms insert K Index Technology qualifiers based on a conceptual topic's //metadata/attribute[@name='DocSet'] value />-->
- <!-- If you add new docset values, the item/@id must = "kIndexTechTag_" + the lower-case DocSet name. -->
- <item id="kIndexTermWithTechQualifier">{0}<include item="kIndexTechTag_{1}" />{2}</item>
- <item id="kIndexTechTag_avalon"> [WPF]</item>
- <item id="kIndexTechTag_wpf"> [WPF]</item>
- <item id="kIndexTechTag_wcf"> [Windows Communication Foundation]</item>
- <item id="kindextechtag_windowsforms"> [Windows Forms]</item>
-
- <!-- values for MSHelp:Attr Name="TopicType" -->
- <item id="TT_developerConceptualDocument">kbArticle</item>
- <item id="TT_developerErrorMessageDocument">kbRef</item>
- <item id="TT_developerGlossaryDocument">kbRef</item>
- <item id="TT_developerHowToDocument">kbHowTo</item>
- <item id="TT_developerOrientationDocument">kbOrient</item>
- <item id="TT_developerReferenceWithSyntaxDocument">kbSyntax</item>
- <item id="TT_developerReferenceWithoutSyntaxDocument">kbRef</item>
- <item id="TT_developerSampleDocument">kbSampleProd</item>
- <item id="TT_developerSDKTechnologyOverviewArchitectureDocument">kbArticle</item>
- <item id="TT_developerSDKTechnologyOverviewCodeDirectoryDocument">kbOrient</item>
- <item id="TT_developerSDKTechnologyOverviewOrientationDocument">kbOrient</item>
- <item id="TT_developerSDKTechnologyOverviewScenariosDocument">kbHowTo</item>
- <item id="TT_developerSDKTechnologyOverviewTechnologySummaryDocument">kbRef</item>
- <item id="TT_developerTroubleshootingDocument">kbHowTo</item>
- <item id="TT_developerUIReferenceDocument">kbRef</item>
- <item id="TT_developerWalkthroughDocument">kbHowTo</item>
- <item id="TT_developerWhitePaperDocument">kbArticle</item>
- <item id="TT_developerXmlReference">kbSyntax</item>
- <item id="TT_ManagedReference">apiref</item>
-
- <item id="top">Top</item>
-
- <!-- footer -->
-
-<!-- <item id="footer">
- <p/>
- <span>
- Send
- <a>
- <includeAttribute name="href" item="MailToLink">
- <parameter>{0}</parameter>
- <parameter>{1}</parameter>
- </includeAttribute>
- comments
- </a>
- about this topic to Microsoft.
- </span>
- </item>
-
- <item id="MailToLink">javascript:sendfeedback('Documentation Feedback (Sandcastle CTP): ', '{1}', '');</item>
- -->
-
-<item id="footer">
-<span id="feedbackarea">
- Send
- <a>
- <includeAttribute name="href" item="MailToLink">
- <parameter>{2}</parameter>
- <parameter>{3}</parameter>
- </includeAttribute>
- feedback
- </a>
- on this topic to the DotNetOAuth group.
- </span>
-</item>
-
-<item id="feedbackHeader">
- <span id="headfeedbackarea" class="feedbackhead">
- <a>
- <includeAttribute name="href" item="MailToLink">
- <parameter>{0}</parameter>
- <parameter>{1}</parameter>
- </includeAttribute>
- <include item="fb_headerFeedBack" />
- </a>
- </span>
-</item>
-<item id="MailToLink">javascript:SubmitFeedback('<include item="fb_alias" />','<include item="fb_product" />','<include item="fb_deliverable" />','{0}','{1}','<include item="fb_body" />');</item>
-
-<!-- 5 star rating feedback control in sandcastle scenario-->
-<!--
-<item id="footer">
- <A NAME="feedback"></A>
- <span id="fb" class="feedbackcss">
- <div ID="feedbackarea">
- <FORM METHOD="post" ENCTYPE="text/plain" NAME="formRating">
- <H5><include item="fb_Title" /></H5>
- <P><include item="fb_Introduction" /></P>
- <table>
- <tr>
- <td><include item="fb_Poor" /></td>
- <td class="fbinputId" align="right">1<BR/><input name="fbRating" type="radio" value="0"></input></td>
- <td class="fbinputId" align="right">2<BR/><input name="fbRating" type="radio" value="0"></input></td>
- <td class="fbinputId" align="right">3<BR/><input name="fbRating" type="radio" value="0"></input></td>
- <td class="fbinputId" align="right">4<BR/><input name="fbRating" type="radio" value="0"></input></td>
- <td class="fbinputId" align="right">5<BR/><input name="fbRating" type="radio" value="0"></input></td>
- <td><include item="fb_Excellent" /></td>
- </tr>
- </table>
- <P>
- <include item="fb_EnterFeedbackText" />
- <input id="submitFeedback" type="button"><includeAttribute name="value" item="fb_Send"/><includeAttribute name="onclick" item="MailtoLink" /></input>
- </P>
- </FORM>
- </div>
- </span>
-</item>
-
-<item id="feedbackHeader">
- <span id="headfeedbackarea" class="feedbackhead">
- <a href="#feedback" ID="IconFB" Target="_self">
- <include item="fb_headerFeedBack" />
- </a>
- </span>
-</item>
-
-<item id="MailToLink">javascript:SubmitFeedback('<include item="feedback_alias" />','<include item="feedback_product" />','<include item="feedback_deliverable" />','<include item="feedback_fileVersion" />','<include item="feedback_topicVersion" />','<include item="feedback_body" />');</item>
--->
-
-<item id="copyrightStatement"><include item="copyrightText"/></item>
-
-<item id="copyrightText">&#169; 2005 Microsoft Corporation. All rights reserved.</item>
-
-</content>
+<content xml:space="preserve"
+ xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
+
+ <!-- paths -->
+ <item id="iconPath">../icons/{0}</item>
+ <item id="scriptPath">../scripts/{0}</item>
+ <item id="artPath">../art/{0}</item>
+ <item id="stylePath">../styles/{0}</item>
+
+ <!-- locale -->
+ <item id="locale">en-us</item>
+
+ <item id="desktopTechnologyAttribute">kbNetFramewk</item>
+ <item id="netcfTechnologyAttribute">kbNetCompactFramewk</item>
+ <item id="netcfDocSetAttribute">NetCompactFramework</item>
+ <item id="xnaTechnologyAttribute">kbXNA</item>
+ <item id="xnaDocSetAttribute">XNA</item>
+
+ <!-- header -->
+ <item id="header"><font color="DarkGray"></font><p/> </item>
+
+ <!-- topic title -->
+ <item id="nsrTitle">{0}</item>
+
+ <!-- alert titles -->
+ <item id="tipTitle"><b>Tip:</b></item>
+ <item id="cautionTitle"><b>Caution:</b></item>
+ <item id="securityTitle"><b>Security Note:</b></item>
+ <item id="noteTitle"><b>Note:</b></item>
+ <item id="importantTitle"><b>Important Note:</b></item>
+ <item id="visualBasicTitle"><b>Visual Basic Note:</b></item>
+ <item id="visualC#Title"><b>C# Note:</b></item>
+ <item id="visualC++Title"><b>C++ Note:</b></item>
+ <item id="visualJ#Title"><b>J# Note:</b></item>
+
+ <!-- alert alt text -->
+ <item id="tipAltText">Tip</item>
+ <item id="cautionAltText">Caution note</item>
+ <item id="securityAltText">Security note</item>
+ <item id="noteAltText">Note</item>
+ <item id="importantAltText">Important note</item>
+ <item id="visualBasicAltText">Visual Basic note</item>
+ <item id="visualC#AltText">C# note</item>
+ <item id="visualC++AltText">C++ note</item>
+ <item id="visualJ#AltText">J# note</item>
+
+ <!-- code labels -->
+ <item id="CSharpLabel">C#</item>
+ <item id="VisualBasicLabel">Visual Basic</item>
+ <item id="ManagedCPlusPlusLabel">Visual C++</item>
+ <item id="JSharpLabel">J#</item>
+ <item id="JScriptLabel">JScript</item>
+
+ <!-- section titles -->
+ <item id="exceptionsTitle">Exceptions</item>
+ <item id="SeeAlso">See&#160;Also</item>
+ <item id="SeeAlsoTasks">Tasks</item>
+ <item id="SeeAlsoReference">Reference</item>
+ <item id="SeeAlsoConcepts">Concepts</item>
+ <item id="SeeAlsoOtherResources">Other Resources</item>
+
+ <!-- tool tips -->
+ <item id="collapseAllImage">CollapseAll image</item>
+ <item id="expandAllImage">ExpandAll image</item>
+ <item id="dropDownImage">DropDown image</item>
+ <item id="dropDownHoverImage">DropDownHover image</item>
+ <item id="collapseImage">Collapse image</item>
+ <item id="expandImage">Expand Image</item>
+ <item id="copyHoverImage">CopyHover image</item>
+ <item id="copyImage">Copy image</item>
+ <item id="footerImage">Footer image</item>
+
+ <!-- product labels -->
+ <item id="framework">.NET Framework</item>
+ <item id="compact">.NET Compact Framework</item>
+ <item id="everett">1.1</item>
+ <item id="whidbey">2.0</item>
+
+ <item id="copyCode">Copy Code</item>
+
+
+ <!-- dynamic Link Information -->
+ <item id="mshelpKTable"><MSHelp:ktable keywords='{0}' locHeader='Location' topicHeader = 'Topic' disambiguator='table' indexMoniker='!DefaultDynamicLinkIndex' /></item>
+
+ <item id="dynamicLinkInlinePreFixText">For more information, see </item>
+ <item id="dynamicLinkInlinePostFixText">.</item>
+ <item id="dynamicLinkInlineSeperatorText"> and </item>
+
+ <item id="remarksTitle">Remarks</item>
+
+ <!-- devlangs filter -->
+ <item id="devlangsDropdown">Code: {0}</item>
+ <item id="all">All</item>
+ <item id="multiple">Multiple</item>
+ <item id="VisualBasic">Visual Basic</item>
+ <item id="VBScript">Visual Basic Script</item>
+ <item id="CSharp">C#</item>
+ <item id="ManagedCPlusPlus">Visual C++</item>
+ <item id="JSharp">J#</item>
+ <item id="JScript">JScript</item>
+ <item id="xmlLang">Xml</item>
+ <item id="JavaScript">JavaScript</item>
+ <item id="html">Html</item>
+ <item id="visualbasicANDcsharp"><include item="VisualBasic"/> and <include item="CSharp"/></item>
+ <item id="other"></item>
+ <item id="XAML">XAML</item>
+ <item id="usage">Usage</item>
+ <item id="AspNet">ASP.NET</item>
+ <item id="VisualBasicDeclaration"><include item="VisualBasic"/> (Declaration)</item>
+ <item id="VisualBasicUsage"><include item="VisualBasic"/> (<include item="usage"/>)</item>
+
+ <item id="dropdownSeparator"><span>&#160;&#160;&#160;&#160;</span></item>
+ <item id="nsrLinkSeparator"> </item>
+
+ <!-- language keywords -->
+ <item id="nullKeyword">a null reference (<span class="keyword">Nothing</span> in Visual Basic)</item>
+ <item id="staticKeyword"><span class="keyword">static</span> (<span class="keyword">Shared</span> in Visual Basic)</item>
+ <item id="virtualKeyword"><span class="keyword">virtual</span> (<span class="keyword">Overridable</span> in Visual Basic)</item>
+ <item id="trueKeyword"><span class="keyword">true</span> (<span class="keyword">True</span> in Visual Basic)</item>
+ <item id="falseKeyword"><span class="keyword">false</span> (<span class="keyword">False</span> in Visual Basic)</item>
+ <item id="abstractKeyword"><span class="keyword">abstract</span> (<span class="keyword">MustInherit</span> in Visual Basic)</item>
+
+ <!-- transforms insert K Index Technology qualifiers based on a conceptual topic's //metadata/attribute[@name='DocSet'] value />-->
+ <!-- If you add new docset values, the item/@id must = "kIndexTechTag_" + the lower-case DocSet name. -->
+ <item id="kIndexTermWithTechQualifier">{0}<include item="kIndexTechTag_{1}" />{2}</item>
+ <item id="kIndexTechTag_avalon"> [WPF]</item>
+ <item id="kIndexTechTag_wpf"> [WPF]</item>
+ <item id="kIndexTechTag_wcf"> [Windows Communication Foundation]</item>
+ <item id="kindextechtag_windowsforms"> [Windows Forms]</item>
+
+ <!-- values for MSHelp:Attr Name="TopicType" -->
+ <item id="TT_developerConceptualDocument">kbArticle</item>
+ <item id="TT_developerErrorMessageDocument">kbRef</item>
+ <item id="TT_developerGlossaryDocument">kbRef</item>
+ <item id="TT_developerHowToDocument">kbHowTo</item>
+ <item id="TT_developerOrientationDocument">kbOrient</item>
+ <item id="TT_developerReferenceWithSyntaxDocument">kbSyntax</item>
+ <item id="TT_developerReferenceWithoutSyntaxDocument">kbRef</item>
+ <item id="TT_developerSampleDocument">kbSampleProd</item>
+ <item id="TT_developerSDKTechnologyOverviewArchitectureDocument">kbArticle</item>
+ <item id="TT_developerSDKTechnologyOverviewCodeDirectoryDocument">kbOrient</item>
+ <item id="TT_developerSDKTechnologyOverviewOrientationDocument">kbOrient</item>
+ <item id="TT_developerSDKTechnologyOverviewScenariosDocument">kbHowTo</item>
+ <item id="TT_developerSDKTechnologyOverviewTechnologySummaryDocument">kbRef</item>
+ <item id="TT_developerTroubleshootingDocument">kbHowTo</item>
+ <item id="TT_developerUIReferenceDocument">kbRef</item>
+ <item id="TT_developerWalkthroughDocument">kbHowTo</item>
+ <item id="TT_developerWhitePaperDocument">kbArticle</item>
+ <item id="TT_developerXmlReference">kbSyntax</item>
+ <item id="TT_ManagedReference">apiref</item>
+
+ <item id="top">Top</item>
+
+ <!-- footer -->
+
+<!-- <item id="footer">
+ <p/>
+ <span>
+ Send
+ <a>
+ <includeAttribute name="href" item="MailToLink">
+ <parameter>{0}</parameter>
+ <parameter>{1}</parameter>
+ </includeAttribute>
+ comments
+ </a>
+ about this topic to Microsoft.
+ </span>
+ </item>
+
+ <item id="MailToLink">javascript:sendfeedback('Documentation Feedback (Sandcastle CTP): ', '{1}', '');</item>
+ -->
+
+<item id="footer">
+<span id="feedbackarea">
+ Send
+ <a>
+ <includeAttribute name="href" item="MailToLink">
+ <parameter>{2}</parameter>
+ <parameter>{3}</parameter>
+ </includeAttribute>
+ feedback
+ </a>
+ on this topic to the DotNetOAuth group.
+ </span>
+</item>
+
+<item id="feedbackHeader">
+ <span id="headfeedbackarea" class="feedbackhead">
+ <a>
+ <includeAttribute name="href" item="MailToLink">
+ <parameter>{0}</parameter>
+ <parameter>{1}</parameter>
+ </includeAttribute>
+ <include item="fb_headerFeedBack" />
+ </a>
+ </span>
+</item>
+<item id="MailToLink">javascript:SubmitFeedback('<include item="fb_alias" />','<include item="fb_product" />','<include item="fb_deliverable" />','{0}','{1}','<include item="fb_body" />');</item>
+
+<!-- 5 star rating feedback control in sandcastle scenario-->
+<!--
+<item id="footer">
+ <A NAME="feedback"></A>
+ <span id="fb" class="feedbackcss">
+ <div ID="feedbackarea">
+ <FORM METHOD="post" ENCTYPE="text/plain" NAME="formRating">
+ <H5><include item="fb_Title" /></H5>
+ <P><include item="fb_Introduction" /></P>
+ <table>
+ <tr>
+ <td><include item="fb_Poor" /></td>
+ <td class="fbinputId" align="right">1<BR/><input name="fbRating" type="radio" value="0"></input></td>
+ <td class="fbinputId" align="right">2<BR/><input name="fbRating" type="radio" value="0"></input></td>
+ <td class="fbinputId" align="right">3<BR/><input name="fbRating" type="radio" value="0"></input></td>
+ <td class="fbinputId" align="right">4<BR/><input name="fbRating" type="radio" value="0"></input></td>
+ <td class="fbinputId" align="right">5<BR/><input name="fbRating" type="radio" value="0"></input></td>
+ <td><include item="fb_Excellent" /></td>
+ </tr>
+ </table>
+ <P>
+ <include item="fb_EnterFeedbackText" />
+ <input id="submitFeedback" type="button"><includeAttribute name="value" item="fb_Send"/><includeAttribute name="onclick" item="MailtoLink" /></input>
+ </P>
+ </FORM>
+ </div>
+ </span>
+</item>
+
+<item id="feedbackHeader">
+ <span id="headfeedbackarea" class="feedbackhead">
+ <a href="#feedback" ID="IconFB" Target="_self">
+ <include item="fb_headerFeedBack" />
+ </a>
+ </span>
+</item>
+
+<item id="MailToLink">javascript:SubmitFeedback('<include item="feedback_alias" />','<include item="feedback_product" />','<include item="feedback_deliverable" />','<include item="feedback_fileVersion" />','<include item="feedback_topicVersion" />','<include item="feedback_body" />');</item>
+-->
+
+<item id="copyrightStatement"><include item="copyrightText"/></item>
+
+<item id="copyrightText">&#169; 2005 Microsoft Corporation. All rights reserved.</item>
+
+</content>