<br />
<b>Deprecated</b>:  YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container::__construct(): Implicitly marking parameter $parameterBag as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php</b> on line <b>60</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\League\OAuth2\Client\Provider\AbstractProvider::authorize(): Implicitly marking parameter $redirectHandler as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php</b> on line <b>416</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\Client::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/Client.php</b> on line <b>181</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\ClientInterface::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php</b> on line <b>77</b><br />
{"id":153,"date":"2011-01-05T23:24:39","date_gmt":"2011-01-05T22:24:39","guid":{"rendered":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/"},"modified":"2011-01-05T23:24:39","modified_gmt":"2011-01-05T22:24:39","slug":"writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch","status":"publish","type":"post","link":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/","title":{"rendered":"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010"},"content":{"rendered":"<p>A<br \/>\n<strong><\/p>\n<p>SharePoint 2010 brought us the whole new authentication world \u2013 Claims-Based authentication, based on the Windows Identity Foundation. To go through the whole claims-based logic would take too much time and space on this blog, but it\u2019s nevertheless crucial for understanding the whole concept. If you haven\u2019t already seen it, please take a look at a great <a href=\"http:\/\/channel9.msdn.com\/Shows\/Identity\/Sharepoint-2010-and-Claims-Based-Identity\" target=\"_blank\">interview<\/a> with Microsoft\u2019s Venky Veeraraghavan, one of the people who have designed the whole concept.<\/p>\n<p>What I will focus on now is how to use the claims-based authentication to set up a combined, Windows Authentication and Forms Based Authentication (FBA) on a SharePoint Web Application. It\u2019s a fairly common scenario \u2013 you have your internal people, who are members of the domain, and external partners or salesmen who have to use resources in your intranet, but they are not members of your domain.<\/p>\n<p>  <!--more--> <a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"internalexternal\" border=\"0\" alt=\"internalexternal\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg\" width=\"519\" height=\"292\" \/><\/a>   <\/p>\n<h3>Past times<\/h3>\n<p>Way back, in the times of MOSS 2007, there was a Form Based Authentication. There was even a way to combine it with Windows Authentication. But it was not an easy thing to do. And, even once it was done, it was always a funny thing to observe an user who has just authenticated over FBA trying to open a Word document. After clicking three times on the \u201cCancel\u201d button in the great Windows authentication popup, the document opens anyways. Sometimes.<\/p>\n<p>Now, try to explain <em>that<\/em> to the customer\u2026<\/p>\n<p>It ended up with administrators creating domain accounts for external people just because of the SharePoint. Man, the <em>loved<\/em> it.<\/p>\n<p>But, as we have said earlier, <em>everything<\/em> is claims and good now. Except if you chose the <em>classical authentication mode<\/em> when you are creating your SharePoint web application, which is the default setting. But let\u2019s not get into it\u2026<\/p>\n<p>Anyway, it works now. You do have to change some defaults, you do need some afterwards (no, Microsoft still doesn\u2019t want us to give up on the SharePoint-Voodoo), but \u2013 it works.<\/p>\n<h3>Back to the future<\/h3>\n<p>Let\u2019s think of the following scenario. We are a rock label. Our employees have the following usernames: bspringsteen, jcocker, bvox, mjagger and smacgowan. We make a great business, earn lot of money, and we have decided to support some poor jazz guys. We have an old web application, maybe even PHP with MySQL database, which is used by those external jazz people. It means, they already have usernames and passwords there. Now, we want to give them the access to our brand new SharePoint portal, but we don\u2019t want them in the AD. They are not the rock\u2019n\u2019roll people, after all. We want to use existing <em>authentication<\/em> (usernames and passwords for the old PHP application), and just to give them necessary rights on our SharePoint portal.<\/p>\n<h3>Building a custom ASP.NET membership and roles provider<\/h3>\n<p>The first thing we have to do is to write a custom ASP.NET membership provider. It\u2019s peace of code which will tell us who can authenticate, and who can\u2019t. That\u2019s nothing new, but it has to be done.<\/p>\n<p>1. Create a new .NET 3.5 class library in VS 2010<\/p>\n<p>2. Create two new classes in the class library, one has to inherit from the MembersipProvider class, and the other from the RolesProvider class (both in System.Web.Security):<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/image_thumb.png\" width=\"467\" height=\"177\" \/><\/a><\/p>\n<p>Now, let\u2019s take a look at the \u201cShareDoveMembershipProvider\u201d class. You have to implement the following methods:<\/p>\n<div style=\"border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px\" id=\"codeSnippetWrapper\">\n<div style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\" id=\"codeSnippet\">\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUserCollection GetAllUsers(<span style=\"color: #0000ff\">int<\/span> pageIndex, <span style=\"color: #0000ff\">int<\/span> pageSize, <span style=\"color: #0000ff\">out<\/span> <span style=\"color: #0000ff\">int<\/span> totalRecords)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUserCollection FindUsersByEmail(<span style=\"color: #0000ff\">string<\/span> emailToMatch, <span style=\"color: #0000ff\">int<\/span> pageIndex, <span style=\"color: #0000ff\">int<\/span> pageSize, <span style=\"color: #0000ff\">out<\/span> <span style=\"color: #0000ff\">int<\/span> totalRecords)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUserCollection FindUsersByName(<span style=\"color: #0000ff\">string<\/span> usernameToMatch, <span style=\"color: #0000ff\">int<\/span> pageIndex, <span style=\"color: #0000ff\">int<\/span> pageSize, <span style=\"color: #0000ff\">out<\/span> <span style=\"color: #0000ff\">int<\/span> totalRecords)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUser GetUser(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">bool<\/span> userIsOnline)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUser GetUser(<span style=\"color: #0000ff\">object<\/span> providerUserKey, <span style=\"color: #0000ff\">bool<\/span> userIsOnline)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span> GetUserNameByEmail(<span style=\"color: #0000ff\">string<\/span> email)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> ValidateUser(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> password)<\/pre>\n<p><!--CRLF--><\/p>\n<\/p><\/div>\n<\/div>\n<p>You see, this is the place where you implement all your user-authentication logic. Let\u2019s keep the things simple for the demo purposes, and let\u2019s hard code our Jazz-people as users in this class.<\/p>\n<p>In the real life you would of course talk to the MySql database mentioned in the example above which contains usernames and passwords, or to the web service, or to a sharepoint-voodoo-priest or whatever. Right now, as we said, just a hard coded example:<\/p>\n<div style=\"border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px\" id=\"codeSnippetWrapper\">\n<div style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\" id=\"codeSnippet\">\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum1\">   1:<\/span> <span style=\"color: #0000ff\">using<\/span> System;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum2\">   2:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Collections.Generic;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum3\">   3:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Linq;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum4\">   4:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Text;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum5\">   5:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Web.Security;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum6\">   6:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Collections.Specialized;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum7\">   7:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum8\">   8:<\/span> <span style=\"color: #0000ff\">namespace<\/span> Progressive.ShareDove.DiverseTests.ShareDoveMembershipAndRolesProvider<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum9\">   9:<\/span> {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum10\">  10:<\/span>     <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum11\">  11:<\/span>     <span style=\"color: #008000\">\/\/\/ Custom ShareDove Membership Provider<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum12\">  12:<\/span>     <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum13\">  13:<\/span>     <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">class<\/span> ShareDoveMembershipProvider : MembershipProvider<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum14\">  14:<\/span>     {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum15\">  15:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum16\">  16:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum17\">  17:<\/span>         <span style=\"color: #008000\">\/\/\/ List of all membership users<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum18\">  18:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum19\">  19:<\/span>         <span style=\"color: #0000ff\">private<\/span> MembershipUserCollection m_AllUsers;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum20\">  20:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum21\">  21:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum22\">  22:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum23\">  23:<\/span>         <span style=\"color: #008000\">\/\/\/ \/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum24\">  24:<\/span>         <span style=\"color: #008000\">\/\/\/ Generate Some dummy users for demo purposes :)<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum25\">  25:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum26\">  26:<\/span>         <span style=\"color: #0000ff\">private<\/span> <span style=\"color: #0000ff\">void<\/span> generateUsers()<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum27\">  27:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum28\">  28:<\/span>             m_AllUsers = <span style=\"color: #0000ff\">new<\/span> MembershipUserCollection();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum29\">  29:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum30\">  30:<\/span>             <span style=\"color: #008000\">\/\/<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum31\">  31:<\/span>             <span style=\"color: #008000\">\/\/in this part of code there should be some really impressive logic - like retrieving users from the external LOB system, or web service, or whatever<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum32\">  32:<\/span>             <span style=\"color: #008000\">\/\/but let's in this example add just somt jazz legends here... :)<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum33\">  33:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Ella Fitzgerald&quot;<\/span>, <span style=\"color: #006080\">&quot;EllaFitzgerald&quot;<\/span>, <span style=\"color: #006080\">&quot;Ella.Fitzgerald@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;EF is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum34\">  34:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Billie Holiday&quot;<\/span>, <span style=\"color: #006080\">&quot;BillieHoliday&quot;<\/span>, <span style=\"color: #006080\">&quot;Billie.Holiday@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;BH is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum35\">  35:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Louis Armstrong&quot;<\/span>, <span style=\"color: #006080\">&quot;LouisArmstrong&quot;<\/span>, <span style=\"color: #006080\">&quot;Louis.Armstrong@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;LA is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum36\">  36:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Duke Ellington&quot;<\/span>, <span style=\"color: #006080\">&quot;DukeEllington&quot;<\/span>, <span style=\"color: #006080\">&quot;Duke.Ellington@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;DE is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum37\">  37:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Miles Davis&quot;<\/span>, <span style=\"color: #006080\">&quot;MilesDavis&quot;<\/span>, <span style=\"color: #006080\">&quot;Miles.Davis@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;MD is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum38\">  38:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Fletcher Henderson&quot;<\/span>, <span style=\"color: #006080\">&quot;FletcherHenderson&quot;<\/span>, <span style=\"color: #006080\">&quot;Fletcher.Henderson@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;FH is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum39\">  39:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Benny Goodman&quot;<\/span>, <span style=\"color: #006080\">&quot;BennyGoodman&quot;<\/span>, <span style=\"color: #006080\">&quot;Benny.Goodman@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;BG is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum40\">  40:<\/span>             m_AllUsers.Add(<span style=\"color: #0000ff\">new<\/span> MembershipUser(<span style=\"color: #0000ff\">this<\/span>.Name, <span style=\"color: #006080\">&quot;Jelly Roll Morton&quot;<\/span>, <span style=\"color: #006080\">&quot;JellyRollMorton&quot;<\/span>, <span style=\"color: #006080\">&quot;Jelly.Roll.Morton@sharedove.com&quot;<\/span>, <span style=\"color: #006080\">&quot;How good is jazz?&quot;<\/span>, <span style=\"color: #006080\">&quot;JRM is good&quot;<\/span>, <span style=\"color: #0000ff\">true<\/span>, <span style=\"color: #0000ff\">false<\/span>, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today));<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum41\">  41:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum42\">  42:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum43\">  43:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum44\">  44:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum45\">  45:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum46\">  46:<\/span>         <span style=\"color: #008000\">\/\/\/ Retrieve all the users ShareDove Membership provider can authenticate.<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum47\">  47:<\/span>         <span style=\"color: #008000\">\/\/\/ We will ignore the paging here, for demo purposes<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum48\">  48:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum49\">  49:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;pageIndex&quot;&gt;Index of the results page we are returning (ignored in this demo example)&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum50\">  50:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;pageSize&quot;&gt;Number of the items returned in a results page  (ignored in this demo example)&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum51\">  51:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;totalRecords&quot;&gt;Total number of records we are returning&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum52\">  52:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;User Collection with all users&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum53\">  53:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUserCollection GetAllUsers(<span style=\"color: #0000ff\">int<\/span> pageIndex, <span style=\"color: #0000ff\">int<\/span> pageSize, <span style=\"color: #0000ff\">out<\/span> <span style=\"color: #0000ff\">int<\/span> totalRecords)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum54\">  54:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum55\">  55:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum56\">  56:<\/span>             <span style=\"color: #0000ff\">if<\/span> (m_AllUsers == <span style=\"color: #0000ff\">null<\/span>) generateUsers();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum57\">  57:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum58\">  58:<\/span>             totalRecords = m_AllUsers.Count;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum59\">  59:<\/span>             <span style=\"color: #0000ff\">return<\/span> m_AllUsers;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum60\">  60:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum61\">  61:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum62\">  62:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum63\">  63:<\/span>         <span style=\"color: #008000\">\/\/\/ Find users by email<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum64\">  64:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum65\">  65:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;emailToMatch&quot;&gt;Email sto search&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum66\">  66:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;pageIndex&quot;&gt;Index of the results page we are returning (ignored in this demo example)&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum67\">  67:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;pageSize&quot;&gt;Number of the items returned in a results page  (ignored in this demo example)&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum68\">  68:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;totalRecords&quot;&gt;Total number of records we are returning&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum69\">  69:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;Members found by email&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum70\">  70:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUserCollection FindUsersByEmail(<span style=\"color: #0000ff\">string<\/span> emailToMatch, <span style=\"color: #0000ff\">int<\/span> pageIndex, <span style=\"color: #0000ff\">int<\/span> pageSize, <span style=\"color: #0000ff\">out<\/span> <span style=\"color: #0000ff\">int<\/span> totalRecords)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum71\">  71:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum72\">  72:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum73\">  73:<\/span>             <span style=\"color: #0000ff\">if<\/span> (m_AllUsers == <span style=\"color: #0000ff\">null<\/span>) generateUsers();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum74\">  74:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum75\">  75:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum76\">  76:<\/span>             MembershipUserCollection returnFoundUsers = <span style=\"color: #0000ff\">new<\/span> MembershipUserCollection();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum77\">  77:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum78\">  78:<\/span>             (m_AllUsers.Cast&lt;MembershipUser&gt;().<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum79\">  79:<\/span>                 Where(membershipUser =&gt; membershipUser.Email.ToLowerInvariant().Contains(emailToMatch.ToLowerInvariant())))<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum80\">  80:<\/span>                 .ToList().ForEach(returnFoundUsers.Add);<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum81\">  81:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum82\">  82:<\/span>             totalRecords = returnFoundUsers.Count;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum83\">  83:<\/span>             <span style=\"color: #0000ff\">return<\/span> returnFoundUsers;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum84\">  84:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum85\">  85:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum86\">  86:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum87\">  87:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum88\">  88:<\/span>         <span style=\"color: #008000\">\/\/\/ Find users by username<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum89\">  89:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum90\">  90:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;emailToMatch&quot;&gt;Email sto search&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum91\">  91:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;pageIndex&quot;&gt;Index of the results page we are returning (ignored in this demo example)&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum92\">  92:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;pageSize&quot;&gt;Number of the items returned in a results page  (ignored in this demo example)&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum93\">  93:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;totalRecords&quot;&gt;Total number of records we are returning&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum94\">  94:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;Members found by email&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum95\">  95:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUserCollection FindUsersByName(<span style=\"color: #0000ff\">string<\/span> usernameToMatch, <span style=\"color: #0000ff\">int<\/span> pageIndex, <span style=\"color: #0000ff\">int<\/span> pageSize, <span style=\"color: #0000ff\">out<\/span> <span style=\"color: #0000ff\">int<\/span> totalRecords)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum96\">  96:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum97\">  97:<\/span>             <span style=\"color: #0000ff\">if<\/span> (m_AllUsers == <span style=\"color: #0000ff\">null<\/span>) generateUsers();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum98\">  98:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum99\">  99:<\/span>             MembershipUserCollection returnFoundUsers = <span style=\"color: #0000ff\">new<\/span> MembershipUserCollection();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum100\"> 100:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum101\"> 101:<\/span>             (m_AllUsers.Cast&lt;MembershipUser&gt;().<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum102\"> 102:<\/span>                 Where(membershipUser =&gt; membershipUser.UserName.ToLowerInvariant().Contains(usernameToMatch.ToLowerInvariant())))<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum103\"> 103:<\/span>                 .ToList().ForEach(returnFoundUsers.Add);<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum104\"> 104:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum105\"> 105:<\/span>             totalRecords = returnFoundUsers.Count;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum106\"> 106:<\/span>             <span style=\"color: #0000ff\">return<\/span> returnFoundUsers;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum107\"> 107:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum108\"> 108:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum109\"> 109:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum110\"> 110:<\/span>         <span style=\"color: #008000\">\/\/\/ Gets a specified user by it's username<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum111\"> 111:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum112\"> 112:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;username&quot;&gt;Username&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum113\"> 113:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;userIsOnline&quot;&gt;If true, updates the last-activity date\/time stamp for the specified user.&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum114\"> 114:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;Found Membership user&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum115\"> 115:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUser GetUser(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">bool<\/span> userIsOnline)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum116\"> 116:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum117\"> 117:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum118\"> 118:<\/span>             <span style=\"color: #0000ff\">if<\/span> (m_AllUsers == <span style=\"color: #0000ff\">null<\/span>) generateUsers();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum119\"> 119:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum120\"> 120:<\/span>             IEnumerable&lt;MembershipUser&gt; usersFound = m_AllUsers.Cast&lt;MembershipUser&gt;().Where(membershipUser =&gt; membershipUser.UserName == username);<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum121\"> 121:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum122\"> 122:<\/span>             <span style=\"color: #0000ff\">return<\/span> usersFound.FirstOrDefault();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum123\"> 123:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum124\"> 124:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum125\"> 125:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum126\"> 126:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum127\"> 127:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum128\"> 128:<\/span>         <span style=\"color: #008000\">\/\/\/ Gets a specified user by it's Provider User Key<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum129\"> 129:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum130\"> 130:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;username&quot;&gt;Provider User Key&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum131\"> 131:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;userIsOnline&quot;&gt;If true, updates the last-activity date\/time stamp for the specified user.&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum132\"> 132:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;Found Membership user&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum133\"> 133:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUser GetUser(<span style=\"color: #0000ff\">object<\/span> providerUserKey, <span style=\"color: #0000ff\">bool<\/span> userIsOnline)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum134\"> 134:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum135\"> 135:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum136\"> 136:<\/span>             <span style=\"color: #0000ff\">if<\/span> (m_AllUsers == <span style=\"color: #0000ff\">null<\/span>) generateUsers();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum137\"> 137:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum138\"> 138:<\/span>             IEnumerable&lt;MembershipUser&gt; usersFound = m_AllUsers.Cast&lt;MembershipUser&gt;().Where(membershipUser =&gt; membershipUser.ProviderUserKey.ToString() == providerUserKey.ToString());<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum139\"> 139:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum140\"> 140:<\/span>             <span style=\"color: #0000ff\">return<\/span> usersFound.FirstOrDefault();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum141\"> 141:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum142\"> 142:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum143\"> 143:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum144\"> 144:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum145\"> 145:<\/span>         <span style=\"color: #008000\">\/\/\/ Get's the username based on the member's email address<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum146\"> 146:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum147\"> 147:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;email&quot;&gt;member's email address&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum148\"> 148:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;Found username&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum149\"> 149:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span> GetUserNameByEmail(<span style=\"color: #0000ff\">string<\/span> email)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum150\"> 150:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum151\"> 151:<\/span>             <span style=\"color: #0000ff\">if<\/span> (m_AllUsers == <span style=\"color: #0000ff\">null<\/span>) generateUsers();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum152\"> 152:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum153\"> 153:<\/span>             IEnumerable&lt;MembershipUser&gt; usersFound = m_AllUsers.Cast&lt;MembershipUser&gt;().Where(membershipUser =&gt; membershipUser.Email.ToLowerInvariant() == email.ToLowerInvariant());<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum154\"> 154:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum155\"> 155:<\/span>             MembershipUser user = usersFound.FirstOrDefault();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum156\"> 156:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum157\"> 157:<\/span>             <span style=\"color: #0000ff\">if<\/span> (user != <span style=\"color: #0000ff\">null<\/span>)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum158\"> 158:<\/span>                 <span style=\"color: #0000ff\">return<\/span> user.UserName;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum159\"> 159:<\/span>             <span style=\"color: #0000ff\">else<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum160\"> 160:<\/span>                 <span style=\"color: #0000ff\">return<\/span> <span style=\"color: #0000ff\">null<\/span>;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum161\"> 161:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum162\"> 162:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum163\"> 163:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum164\"> 164:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum165\"> 165:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum166\"> 166:<\/span>         <span style=\"color: #008000\">\/\/\/ A Dummy validation method - here we are only going to check if the username exists and if any password is given - it will be enough for the demo purposes<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum167\"> 167:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum168\"> 168:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;username&quot;&gt;username&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum169\"> 169:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;password&quot;&gt;password&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum170\"> 170:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;validation result&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum171\"> 171:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> ValidateUser(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> password)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum172\"> 172:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum173\"> 173:<\/span>             <span style=\"color: #0000ff\">if<\/span> (m_AllUsers == <span style=\"color: #0000ff\">null<\/span>) generateUsers();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum174\"> 174:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum175\"> 175:<\/span>             IEnumerable&lt;MembershipUser&gt; usersFound = m_AllUsers.Cast&lt;MembershipUser&gt;().Where(membershipUser =&gt; membershipUser.UserName == username);<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum176\"> 176:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum177\"> 177:<\/span>             MembershipUser user = usersFound.FirstOrDefault();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum178\"> 178:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum179\"> 179:<\/span>             <span style=\"color: #0000ff\">if<\/span> (user != <span style=\"color: #0000ff\">null<\/span>)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum180\"> 180:<\/span>             {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum181\"> 181:<\/span>                 <span style=\"color: #0000ff\">if<\/span> (<span style=\"color: #0000ff\">string<\/span>.IsNullOrEmpty(password))<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum182\"> 182:<\/span>                 {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum183\"> 183:<\/span>                     <span style=\"color: #0000ff\">return<\/span> <span style=\"color: #0000ff\">false<\/span>;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum184\"> 184:<\/span>                 }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum185\"> 185:<\/span>                 <span style=\"color: #0000ff\">else<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum186\"> 186:<\/span>                 {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum187\"> 187:<\/span>                     <span style=\"color: #0000ff\">return<\/span> <span style=\"color: #0000ff\">true<\/span>;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum188\"> 188:<\/span>                 }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum189\"> 189:<\/span>             }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum190\"> 190:<\/span>             <span style=\"color: #0000ff\">else<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum191\"> 191:<\/span>                 <span style=\"color: #0000ff\">return<\/span> <span style=\"color: #0000ff\">false<\/span>;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum192\"> 192:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum193\"> 193:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum194\"> 194:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum195\"> 195:<\/span>         <span style=\"color: #cc6633\">#region<\/span> Not implemented methods and properties<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum196\"> 196:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span> ApplicationName<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum197\"> 197:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum198\"> 198:<\/span>             get<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum199\"> 199:<\/span>             {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum200\"> 200:<\/span>                 <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum201\"> 201:<\/span>             }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum202\"> 202:<\/span>             set<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum203\"> 203:<\/span>             {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum204\"> 204:<\/span>                 <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum205\"> 205:<\/span>             }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum206\"> 206:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum207\"> 207:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum208\"> 208:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> ChangePassword(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> oldPassword, <span style=\"color: #0000ff\">string<\/span> newPassword)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum209\"> 209:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum210\"> 210:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum211\"> 211:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum212\"> 212:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum213\"> 213:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> ChangePasswordQuestionAndAnswer(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> password, <span style=\"color: #0000ff\">string<\/span> newPasswordQuestion, <span style=\"color: #0000ff\">string<\/span> newPasswordAnswer)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum214\"> 214:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum215\"> 215:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum216\"> 216:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum217\"> 217:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum218\"> 218:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipUser CreateUser(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> password, <span style=\"color: #0000ff\">string<\/span> email, <span style=\"color: #0000ff\">string<\/span> passwordQuestion, <span style=\"color: #0000ff\">string<\/span> passwordAnswer, <span style=\"color: #0000ff\">bool<\/span> isApproved, <span style=\"color: #0000ff\">object<\/span> providerUserKey, <span style=\"color: #0000ff\">out<\/span> MembershipCreateStatus status)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum219\"> 219:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum220\"> 220:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum221\"> 221:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum222\"> 222:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum223\"> 223:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> DeleteUser(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">bool<\/span> deleteAllRelatedData)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum224\"> 224:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum225\"> 225:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum226\"> 226:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum227\"> 227:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum228\"> 228:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> EnablePasswordReset<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum229\"> 229:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum230\"> 230:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum231\"> 231:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum232\"> 232:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum233\"> 233:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> EnablePasswordRetrieval<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum234\"> 234:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum235\"> 235:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum236\"> 236:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum237\"> 237:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum238\"> 238:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">int<\/span> GetNumberOfUsersOnline()<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum239\"> 239:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum240\"> 240:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum241\"> 241:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum242\"> 242:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum243\"> 243:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span> GetPassword(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> answer)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum244\"> 244:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum245\"> 245:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum246\"> 246:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum247\"> 247:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum248\"> 248:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">int<\/span> MaxInvalidPasswordAttempts<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum249\"> 249:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum250\"> 250:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum251\"> 251:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum252\"> 252:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum253\"> 253:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">int<\/span> MinRequiredNonAlphanumericCharacters<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum254\"> 254:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum255\"> 255:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum256\"> 256:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum257\"> 257:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum258\"> 258:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">int<\/span> MinRequiredPasswordLength<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum259\"> 259:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum260\"> 260:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum261\"> 261:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum262\"> 262:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum263\"> 263:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">int<\/span> PasswordAttemptWindow<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum264\"> 264:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum265\"> 265:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum266\"> 266:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum267\"> 267:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum268\"> 268:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> MembershipPasswordFormat PasswordFormat<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum269\"> 269:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum270\"> 270:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum271\"> 271:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum272\"> 272:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum273\"> 273:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span> PasswordStrengthRegularExpression<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum274\"> 274:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum275\"> 275:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum276\"> 276:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum277\"> 277:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum278\"> 278:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> RequiresQuestionAndAnswer<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum279\"> 279:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum280\"> 280:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum281\"> 281:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum282\"> 282:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum283\"> 283:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> RequiresUniqueEmail<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum284\"> 284:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum285\"> 285:<\/span>             get { <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException(); }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum286\"> 286:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum287\"> 287:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum288\"> 288:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span> ResetPassword(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> answer)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum289\"> 289:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum290\"> 290:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum291\"> 291:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum292\"> 292:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum293\"> 293:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> UnlockUser(<span style=\"color: #0000ff\">string<\/span> userName)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum294\"> 294:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum295\"> 295:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum296\"> 296:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum297\"> 297:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum298\"> 298:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">void<\/span> UpdateUser(MembershipUser user)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum299\"> 299:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum300\"> 300:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum301\"> 301:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum302\"> 302:<\/span>         <span style=\"color: #cc6633\">#endregion<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum303\"> 303:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum304\"> 304:<\/span>     }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum305\"> 305:<\/span> }<\/pre>\n<p><!--CRLF--><\/p>\n<\/p><\/div>\n<\/div>\n<p>Now we have to do the same thing with the ShareDoveRolesProvider class \u2013 this is where we implement our roles logic \u2013 which user belongs to which internal role. Don\u2019t mix this up with SharePoint roles \u2013 they still exist, SharePoint still takes care of the authorization, but there might be a case where we want to know the internal roles of the source system. It means, we might want to know who of our jazz people play piano (they are in the \u201cpianist\u201d role), and the roles provider can give us this answer.<\/p>\n<p>The following methods have to be implemented in the Roles provider:<\/p>\n<div style=\"border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px\" id=\"codeSnippetWrapper\">\n<div style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\" id=\"codeSnippet\">\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] GetAllRoles()<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] GetRolesForUser(<span style=\"color: #0000ff\">string<\/span> username)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] GetUsersInRole(<span style=\"color: #0000ff\">string<\/span> rolename)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> IsUserInRole(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> rolename)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> RoleExists(<span style=\"color: #0000ff\">string<\/span> rolename)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] FindUsersInRole(<span style=\"color: #0000ff\">string<\/span> rolename, <span style=\"color: #0000ff\">string<\/span> usernameToMatch)<\/pre>\n<p><!--CRLF--><\/p>\n<\/p><\/div>\n<\/div>\n<p>And again, let\u2019s do some hard coding for this demo purposes. Here is how the class should look like:<\/p>\n<div style=\"border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px\" id=\"codeSnippetWrapper\">\n<div style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\" id=\"codeSnippet\">\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum1\">   1:<\/span> <span style=\"color: #0000ff\">using<\/span> System;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum2\">   2:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Collections.Generic;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum3\">   3:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Linq;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum4\">   4:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Text;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum5\">   5:<\/span> <span style=\"color: #0000ff\">using<\/span> System.Web.Security;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum6\">   6:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum7\">   7:<\/span> <span style=\"color: #0000ff\">namespace<\/span> Progressive.ShareDove.DiverseTests.ShareDoveMembershipAndRolesProvider<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum8\">   8:<\/span> {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum9\">   9:<\/span>     <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum10\">  10:<\/span>     <span style=\"color: #008000\">\/\/\/ ShareDove Roles Provider<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum11\">  11:<\/span>     <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum12\">  12:<\/span>     <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">class<\/span> ShareDoveRolesProvider : RoleProvider<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum13\">  13:<\/span>     {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum14\">  14:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum15\">  15:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span> ApplicationName { get; set; }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum16\">  16:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum17\">  17:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum18\">  18:<\/span>         <span style=\"color: #008000\">\/\/\/ All Roles<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum19\">  19:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum20\">  20:<\/span>         <span style=\"color: #0000ff\">private<\/span> <span style=\"color: #0000ff\">string<\/span>[] m_AllRoles = { <span style=\"color: #006080\">&quot;Drummer&quot;<\/span>, <span style=\"color: #006080\">&quot;Pianist&quot;<\/span>, <span style=\"color: #006080\">&quot;Saxophonist&quot;<\/span>, <span style=\"color: #006080\">&quot;Trumpeter&quot;<\/span>, <span style=\"color: #006080\">&quot;Clarinetist&quot;<\/span>, <span style=\"color: #006080\">&quot;Singer&quot;<\/span>, <span style=\"color: #006080\">&quot;Bandleader&quot;<\/span> };<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum21\">  21:<\/span>         <span style=\"color: #0000ff\">private<\/span> <span style=\"color: #0000ff\">string<\/span>[,] m_RolesForUser = <span style=\"color: #0000ff\">new<\/span> <span style=\"color: #0000ff\">string<\/span>[,] {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum22\">  22:<\/span>             {<span style=\"color: #006080\">&quot;Ella Fitzgerald&quot;<\/span>, <span style=\"color: #006080\">&quot;Vocalist&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum23\">  23:<\/span>             {<span style=\"color: #006080\">&quot;Billie Holiday&quot;<\/span>,<span style=\"color: #006080\">&quot;Vocalist&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum24\">  24:<\/span>             {<span style=\"color: #006080\">&quot;Louis Armstrong&quot;<\/span>,<span style=\"color: #006080\">&quot;Vocalist,Trumpeter&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum25\">  25:<\/span>             {<span style=\"color: #006080\">&quot;Duke Ellington&quot;<\/span>,<span style=\"color: #006080\">&quot;Pianist,Bandleader&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum26\">  26:<\/span>             {<span style=\"color: #006080\">&quot;Miles Davis&quot;<\/span>,  <span style=\"color: #006080\">&quot;Trumpeter,Bandleader&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum27\">  27:<\/span>             {<span style=\"color: #006080\">&quot;Fletcher Henderson&quot;<\/span>,<span style=\"color: #006080\">&quot;Pianist,Bandleader&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum28\">  28:<\/span>             {<span style=\"color: #006080\">&quot;Benny Goodman&quot;<\/span>,<span style=\"color: #006080\">&quot;Clarinetist,Bandleader&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum29\">  29:<\/span>             {<span style=\"color: #006080\">&quot;Jelly Roll Morton&quot;<\/span>,<span style=\"color: #006080\">&quot;Pianist,Bandleade&quot;<\/span>},<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum30\">  30:<\/span>         };<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum31\">  31:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum32\">  32:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum33\">  33:<\/span>         <span style=\"color: #008000\">\/\/\/ Retrieve all available roles<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum34\">  34:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum35\">  35:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;String-array with all roles&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum36\">  36:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] GetAllRoles()<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum37\">  37:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum38\">  38:<\/span>             <span style=\"color: #0000ff\">return<\/span> m_AllRoles;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum39\">  39:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum40\">  40:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum41\">  41:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum42\">  42:<\/span>         <span style=\"color: #008000\">\/\/\/ Get the array of roles for the specified user<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum43\">  43:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum44\">  44:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;username&quot;&gt;User name&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum45\">  45:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;String-array with all roles for the specified user&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum46\">  46:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] GetRolesForUser(<span style=\"color: #0000ff\">string<\/span> username)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum47\">  47:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum48\">  48:<\/span>             List&lt;<span style=\"color: #0000ff\">string<\/span>&gt; users = <span style=\"color: #0000ff\">new<\/span> List&lt;<span style=\"color: #0000ff\">string<\/span>&gt;();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum49\">  49:<\/span>             <span style=\"color: #0000ff\">for<\/span> (<span style=\"color: #0000ff\">int<\/span> i = 0; i &lt;= m_RolesForUser.GetUpperBound(0); i++)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum50\">  50:<\/span>             {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum51\">  51:<\/span>                 <span style=\"color: #0000ff\">if<\/span> (m_RolesForUser[i, 0] == username)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum52\">  52:<\/span>                     users = m_RolesForUser[i, 1].Split(<span style=\"color: #006080\">','<\/span>).ToList&lt;<span style=\"color: #0000ff\">string<\/span>&gt;();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum53\">  53:<\/span>             }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum54\">  54:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum55\">  55:<\/span>             <span style=\"color: #0000ff\">return<\/span> users.ToArray();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum56\">  56:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum57\">  57:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum58\">  58:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum59\">  59:<\/span>         <span style=\"color: #008000\">\/\/\/ Get all the users who are in the given role<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum60\">  60:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum61\">  61:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;rolename&quot;&gt;Role name&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum62\">  62:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;String-array with all users being in the given role&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum63\">  63:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] GetUsersInRole(<span style=\"color: #0000ff\">string<\/span> rolename)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum64\">  64:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum65\">  65:<\/span>             List&lt;<span style=\"color: #0000ff\">string<\/span>&gt; users = <span style=\"color: #0000ff\">new<\/span> List&lt;<span style=\"color: #0000ff\">string<\/span>&gt;();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum66\">  66:<\/span>             <span style=\"color: #0000ff\">for<\/span> (<span style=\"color: #0000ff\">int<\/span> i = 0; i &lt;= m_RolesForUser.GetUpperBound(0); i++)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum67\">  67:<\/span>             {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum68\">  68:<\/span>                 List&lt;<span style=\"color: #0000ff\">string<\/span>&gt; userRoles = m_RolesForUser[i, 1].Split(<span style=\"color: #006080\">','<\/span>).ToList&lt;<span style=\"color: #0000ff\">string<\/span>&gt;();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum69\">  69:<\/span>                 <span style=\"color: #0000ff\">if<\/span> (userRoles.Where(userRole =&gt; userRole == rolename).Count() &gt; 0)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum70\">  70:<\/span>                 {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum71\">  71:<\/span>                     users.Add(m_RolesForUser[i, 0]);<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum72\">  72:<\/span>                 }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum73\">  73:<\/span>             }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum74\">  74:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum75\">  75:<\/span>             <span style=\"color: #0000ff\">return<\/span> users.ToArray();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum76\">  76:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum77\">  77:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum78\">  78:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum79\">  79:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum80\">  80:<\/span>         <span style=\"color: #008000\">\/\/\/ Check if the user is in the role<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum81\">  81:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum82\">  82:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;username&quot;&gt;Username&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum83\">  83:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;rolename&quot;&gt;Role name&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum84\">  84:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;True if user is in the role&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum85\">  85:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> IsUserInRole(<span style=\"color: #0000ff\">string<\/span> username, <span style=\"color: #0000ff\">string<\/span> rolename)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum86\">  86:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum87\">  87:<\/span>             List&lt;<span style=\"color: #0000ff\">string<\/span>&gt; usersForRole = GetUsersInRole(rolename).ToList();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum88\">  88:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum89\">  89:<\/span>             <span style=\"color: #0000ff\">if<\/span> (usersForRole.Where(userName =&gt; userName == username).Count() &gt; 0)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum90\">  90:<\/span>             {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum91\">  91:<\/span>                 <span style=\"color: #0000ff\">return<\/span> <span style=\"color: #0000ff\">true<\/span>;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum92\">  92:<\/span>             }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum93\">  93:<\/span>             <span style=\"color: #0000ff\">else<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum94\">  94:<\/span>             {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum95\">  95:<\/span>                 <span style=\"color: #0000ff\">return<\/span> <span style=\"color: #0000ff\">false<\/span>;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum96\">  96:<\/span>             }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum97\">  97:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum98\">  98:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum99\">  99:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum100\"> 100:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum101\"> 101:<\/span>         <span style=\"color: #008000\">\/\/\/ Check of the role with the given name exists<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum102\"> 102:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum103\"> 103:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;rolename&quot;&gt;Role name&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum104\"> 104:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;True if the role exists&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum105\"> 105:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> RoleExists(<span style=\"color: #0000ff\">string<\/span> rolename)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum106\"> 106:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum107\"> 107:<\/span>             <span style=\"color: #0000ff\">bool<\/span> roleExsists = m_AllRoles.ToList().Where(roleName =&gt; roleName == rolename).Count() &gt; 0;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum108\"> 108:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum109\"> 109:<\/span>             <span style=\"color: #0000ff\">return<\/span> roleExsists;<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum110\"> 110:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum111\"> 111:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum112\"> 112:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum113\"> 113:<\/span>         <span style=\"color: #008000\">\/\/\/ Search for users in the goven role<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum114\"> 114:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;\/summary&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum115\"> 115:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;rolename&quot;&gt;Name of the role to search the users in&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum116\"> 116:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;param name=&quot;usernameToMatch&quot;&gt;Pattern to search in the role&lt;\/param&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum117\"> 117:<\/span>         <span style=\"color: #008000\">\/\/\/ &lt;returns&gt;All the users which mach the pattern&lt;\/returns&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum118\"> 118:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">string<\/span>[] FindUsersInRole(<span style=\"color: #0000ff\">string<\/span> rolename, <span style=\"color: #0000ff\">string<\/span> usernameToMatch)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum119\"> 119:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum120\"> 120:<\/span>             List&lt;<span style=\"color: #0000ff\">string<\/span>&gt; users = GetUsersInRole(rolename).ToList&lt;<span style=\"color: #0000ff\">string<\/span>&gt;();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum121\"> 121:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum122\"> 122:<\/span>             List&lt;<span style=\"color: #0000ff\">string<\/span>&gt; foundUsers = users.Where(userName =&gt; userName.ToLowerInvariant().Contains(usernameToMatch.ToLowerInvariant())).ToList&lt;<span style=\"color: #0000ff\">string<\/span>&gt;();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum123\"> 123:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum124\"> 124:<\/span>             <span style=\"color: #0000ff\">return<\/span> foundUsers.ToArray();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum125\"> 125:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum126\"> 126:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum127\"> 127:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum128\"> 128:<\/span>         <span style=\"color: #cc6633\">#region<\/span> Not implemented methods<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum129\"> 129:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">void<\/span> AddUsersToRoles(<span style=\"color: #0000ff\">string<\/span>[] usernames, <span style=\"color: #0000ff\">string<\/span>[] roleNames)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum130\"> 130:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum131\"> 131:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum132\"> 132:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum133\"> 133:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum134\"> 134:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">void<\/span> CreateRole(<span style=\"color: #0000ff\">string<\/span> roleName)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum135\"> 135:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum136\"> 136:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum137\"> 137:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum138\"> 138:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum139\"> 139:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">bool<\/span> DeleteRole(<span style=\"color: #0000ff\">string<\/span> roleName, <span style=\"color: #0000ff\">bool<\/span> throwOnPopulatedRole)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum140\"> 140:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum141\"> 141:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum142\"> 142:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum143\"> 143:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum144\"> 144:<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum145\"> 145:<\/span>         <span style=\"color: #0000ff\">public<\/span> <span style=\"color: #0000ff\">override<\/span> <span style=\"color: #0000ff\">void<\/span> RemoveUsersFromRoles(<span style=\"color: #0000ff\">string<\/span>[] usernames, <span style=\"color: #0000ff\">string<\/span>[] roleNames)<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum146\"> 146:<\/span>         {<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum147\"> 147:<\/span>             <span style=\"color: #0000ff\">throw<\/span> <span style=\"color: #0000ff\">new<\/span> NotImplementedException();<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum148\"> 148:<\/span>         }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum149\"> 149:<\/span>         <span style=\"color: #cc6633\">#endregion<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum150\"> 150:<\/span>     }<\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum151\"> 151:<\/span> }<\/pre>\n<p><!--CRLF--><\/p>\n<\/p><\/div>\n<\/div>\n<p>So that\u2019s it, we have our custom ASP.NET membership and roles provider that is authenticating our jazz people. Finally, we have to do with it is to sign it, and to throw it to the GAC. Yes, it has to go there.<\/p>\n<p>(<span style=\"font-family: courier new\">gacutil -i ShareDove.MembershipAndRolesProvider.dll<\/span>)<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/00-gac.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"00-gac\" border=\"0\" alt=\"00-gac\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/00-gac_thumb.png\" width=\"570\" height=\"401\" \/><\/a><\/p>\n<h3>Creating a Claims-based Web Application<\/h3>\n<p>The next step is to create a SharePoint Web Application which will used Claims-based authentication. As we said, the classical mode authentication is still the default mode, so we have to change it manually:<\/p>\n<p>(click on the picture for the full size)<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/01-a-createwebapp1.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"01-a-createwebapp\" border=\"0\" alt=\"01-a-createwebapp\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/01-a-createwebapp_thumb1.jpg\" width=\"270\" height=\"322\" \/><\/a><\/p>\n<p>We see that we explicitly have to choose the \u201c<strong>Claims based authentication<\/strong>\u201d, and to select the \u201c<strong>Enable Forms Based Authentication (FBA)<\/strong>\u201d option.<\/p>\n<p>We also see that we have to set the \u201cASP.NET Membership Provider Name\u201d and \u201cASP.NET Role Manager Name\u201d. At this point just give some names which make sense (these names will be later displayed to your users!), but write them down in the Notepad since we will be using it in the SharePoint-Voodoo session that is coming.<\/p>\n<h3>Voodoo time!<\/h3>\n<p>OK, now we have just created a SharePoint web application, and we told to the Web Application that we want to use a custom ASP.NET membership and role providers for our Form Based Authentication, and that they are called, for example, \u201cShareDove Membership Provider\u201d and \u201cShareDove Roles Provider\u201d.<\/p>\n<p>Now, we have to associate somehow this canonical names with our class library which is waiting in GAC to be used. The most logical and straight-forward way is to do it in the web.config.<\/p>\n<p>And since it is that logical, we have to do it three times. Three. The magical voodoo number.<\/p>\n<p>This is not a joke. We have to register our assembly in the web.config of the newly created SharePoint web application (ok, that makes sense). Then in the SharePoint STS (Security Token Service \u2013 a SharePoint Service Application which is handling whole this claims thing). OK, somehow I can understand that as well. But then, we have to register it in the web.config of the Central Administration application as well. Voodoo. No other explanation for that.<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/iis1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"iis1\" border=\"0\" alt=\"iis1\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/iis1_thumb.jpg\" width=\"429\" height=\"352\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/iis2.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"iis2\" border=\"0\" alt=\"iis2\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/iis2_thumb.jpg\" width=\"427\" height=\"345\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/iis3.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"iis3\" border=\"0\" alt=\"iis3\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/iis3_thumb.jpg\" width=\"422\" height=\"378\" \/><\/a><\/p>\n<p>(Applications where we have to edit the web.config)<\/p>\n<p>Luckily, at all three web.config files we have to enter the same peace of code. Under the &lt;system.web&gt; section, we have to add our new providers in the \u201cmembership\u201d and \u201croleManager\u201d sections as following:<\/p>\n<div style=\"border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px\" id=\"codeSnippetWrapper\">\n<div style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\" id=\"codeSnippet\">\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum1\">   1:<\/span> <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">membership<\/span> <span style=\"color: #ff0000\">defaultProvider<\/span><span style=\"color: #0000ff\">=&quot;i&quot;<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum2\">   2:<\/span>     <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">providers<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum3\">   3:<\/span>         <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">add<\/span> <span style=\"color: #ff0000\">name<\/span><span style=\"color: #0000ff\">=&quot;i&quot;<\/span> <span style=\"color: #ff0000\">type<\/span><span style=\"color: #0000ff\">=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot;<\/span> <span style=\"color: #0000ff\">\/&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum4\">   4:<\/span>         <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">add<\/span> <span style=\"color: #ff0000\">name<\/span><span style=\"color: #0000ff\">=&quot;ShareDove Membership Provider&quot;<\/span> <span style=\"color: #ff0000\">applicationName<\/span><span style=\"color: #0000ff\">=&quot;ShareDove Membership&quot;<\/span> <span style=\"color: #ff0000\">type<\/span><span style=\"color: #0000ff\">=&quot;Progressive.ShareDove.DiverseTests.ShareDoveMembershipAndRolesProvider.ShareDoveMembershipProvider, ShareDove.MembershipAndRolesProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1182222d75a911e&quot;<\/span><span style=\"color: #0000ff\">\/&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum5\">   5:<\/span>     <span style=\"color: #0000ff\">&lt;\/<\/span><span style=\"color: #800000\">providers<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum6\">   6:<\/span> <span style=\"color: #0000ff\">&lt;\/<\/span><span style=\"color: #800000\">membership<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum7\">   7:<\/span> <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">roleManager<\/span> <span style=\"color: #ff0000\">defaultProvider<\/span><span style=\"color: #0000ff\">=&quot;c&quot;<\/span> <span style=\"color: #ff0000\">enabled<\/span><span style=\"color: #0000ff\">=&quot;true&quot;<\/span> <span style=\"color: #ff0000\">cacheRolesInCookie<\/span><span style=\"color: #0000ff\">=&quot;false&quot;<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum8\">   8:<\/span>     <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">providers<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum9\">   9:<\/span>         <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">add<\/span> <span style=\"color: #ff0000\">name<\/span><span style=\"color: #0000ff\">=&quot;c&quot;<\/span> <span style=\"color: #ff0000\">type<\/span><span style=\"color: #0000ff\">=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot;<\/span> <span style=\"color: #0000ff\">\/&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum10\">  10:<\/span>         <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">add<\/span> <span style=\"color: #ff0000\">name<\/span><span style=\"color: #0000ff\">=&quot;ShareDove Role Provider&quot;<\/span> <span style=\"color: #ff0000\">type<\/span><span style=\"color: #0000ff\">=&quot;Progressive.ShareDove.DiverseTests.ShareDoveMembershipAndRolesProvider.ShareDoveRolesProvider, ShareDove.MembershipAndRolesProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1182222d75a911e&quot;<\/span> <span style=\"color: #ff0000\">applicationName<\/span><span style=\"color: #0000ff\">=&quot;ShareDove Membership&quot;<\/span> <span style=\"color: #0000ff\">\/&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum11\">  11:<\/span>     <span style=\"color: #0000ff\">&lt;\/<\/span><span style=\"color: #800000\">providers<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p>\n      <br \/><!--CRLF--><\/p>\n<p><\/p>\n<pre style=\"border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;,courier,monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px\"><span style=\"color: #606060\" id=\"lnum12\">  12:<\/span> <span style=\"color: #0000ff\">&lt;\/<\/span><span style=\"color: #800000\">roleManager<\/span><span style=\"color: #0000ff\">&gt;<\/span><\/pre>\n<p><!--CRLF--><\/p>\n<\/p><\/div>\n<\/div>\n<h5>&#160;<\/h5>\n<h5>WARNING 1: Leave the existing providers alone, otherwise the SharePoint-Voodo-Gods will take revenge on you.<\/h5>\n<p>&#160;<\/p>\n<h5>WARNING 2: Don\u2019t copy my assembly names and tokens \u2013 they won\u2019t work at your SharePoint.<\/h5>\n<p>&#160;<\/p>\n<h5>WARNING 3: the \u201cname\u201d attribute of both providers have to be EXACTLY the same as entered when creating the web application.<\/h5>\n<p>&#160;<\/p>\n<h3>Creating the Site Collection and testing the whole thing<\/h3>\n<p>Now we can create a SiteCollection on this application as we are used to.<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/sitecol.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"sitecol\" border=\"0\" alt=\"sitecol\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/sitecol_thumb.jpg\" width=\"493\" height=\"431\" \/><\/a><\/p>\n<p>And, when we try to open our site collection, voila\u2026<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/image_thumb_5_01744BD2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image_thumb_5_01744BD2\" border=\"0\" alt=\"image_thumb_5_01744BD2\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/image_thumb_5_01744BD2_thumb.png\" width=\"485\" height=\"177\" \/><\/a><\/p>\n<p>SharePoint asks us how we would like to log on!<\/p>\n<p>Let\u2019s try the Forms Authentication, and let\u2019s try to sign in as a great jazz pianist Jelly Roll Morton:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/image_thumb_7_01744BD2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image_thumb_7_01744BD2\" border=\"0\" alt=\"image_thumb_7_01744BD2\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/image_thumb_7_01744BD2_thumb.png\" width=\"480\" height=\"206\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/04-signed-accessdenied.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"04-signed-accessdenied\" border=\"0\" alt=\"04-signed-accessdenied\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/04-signed-accessdenied_thumb.jpg\" width=\"530\" height=\"234\" \/><\/a><\/p>\n<p>OK, it\u2019s obvious that good ol\u2019 Jelly doesn\u2019t have any rights on our SharePoint portal yet! We did authenticate him (\u201c<em>You are currently signed in as: jelly roll morton<\/em>\u201d), but, <strong>authorization is still on the SharePoint part of the game<\/strong>. Poor Jelly can\u2019t do anything yet.<\/p>\n<p>Let\u2019s sign out, and sign in again as Administrator (or some other Very Powerful User) using the Windows Authentication. Let\u2019s create a SharePoint Group called \u201cJazzers\u201d, and fill it with some users:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/07-picker-jazzers.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"07-picker-jazzers\" border=\"0\" alt=\"07-picker-jazzers\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/07-picker-jazzers_thumb.jpg\" width=\"399\" height=\"361\" \/><\/a><\/p>\n<p>OK, here is our new people picker! We see, on the left side, more groups, one of them being the \u201cForms Auth\u201d \u2013 that is where we find our jazz people. Let\u2019s select them all in our \u201cJazzers\u201d SharePoint group, and let\u2019s give some rights to that group:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/09-give-permissions-group.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"09-give-permissions-group\" border=\"0\" alt=\"09-give-permissions-group\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/09-give-permissions-group_thumb.jpg\" width=\"581\" height=\"322\" \/><\/a><\/p>\n<p>When selecting the FBA users, if we click at the <em>user information<\/em>, we see the following:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/08-member-info.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"08-member-info\" border=\"0\" alt=\"08-member-info\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/08-member-info_thumb.jpg\" width=\"605\" height=\"344\" \/><\/a><\/p>\n<p>User Information panel gives us all the information we provided through our ASP.NET membership provider, and it clearly states the provider which gave the info (\u201cShareDove Membership Provider\u201d)<\/p>\n<p>We can now log out as the Administrator, and try to log in as Billie Holiday using the FBA again:<\/p>\n<p><a href=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/10-logged-claims.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"10-logged-claims\" border=\"0\" alt=\"10-logged-claims\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/10-logged-claims_thumb.jpg\" width=\"578\" height=\"306\" \/><\/a><\/p>\n<p>So, we see, it really does work! Our external users can do exactly what we authorize them to do. Even open the Word documents!<\/p>\n<p><img decoding=\"async\" style=\"border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none\" class=\"wlEmoticon wlEmoticon-openmouthedsmile\" alt=\"Open-mouthed smile\" src=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/wlEmoticon-openmouthedsmile.png\" \/><\/p>\n<p>Hope this helps someone.<\/p>\n<div class=\"fb-background-color\">\n\t\t\t  <div \n\t\t\t  \tclass = \"fb-comments\" \n\t\t\t  \tdata-href = \"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/\"\n\t\t\t  \tdata-numposts = \"59\"\n\t\t\t  \tdata-lazy = \"true\"\n\t\t\t\tdata-colorscheme = \"light\"\n\t\t\t\tdata-order-by = \"time\"\n\t\t\t\tdata-mobile=true>\n\t\t\t  <\/div><\/div>\n\t\t  <style>\n\t\t    .fb-background-color {\n\t\t\t\tbackground:  !important;\n\t\t\t}\n\t\t\t.fb_iframe_widget_fluid_desktop iframe {\n\t\t\t    width: 100% !important;\n\t\t\t}\n\t\t  <\/style>\n\t\t  ","protected":false},"excerpt":{"rendered":"<p>A SharePoint 2010 brought us the whole new authentication world \u2013 Claims-Based authentication, based on the Windows Identity Foundation. To go through the whole claims-based logic would take too much time and space on this blog, but it\u2019s nevertheless crucial for understanding the whole concept. If you haven\u2019t already seen it, please take a look [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[11],"tags":[55],"class_list":["post-153","post","type-post","status-publish","format-standard","hentry","category-development","tag-sharepoint"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010 - Adis Jugo blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010 - Adis Jugo blog\" \/>\n<meta property=\"og:description\" content=\"A SharePoint 2010 brought us the whole new authentication world \u2013 Claims-Based authentication, based on the Windows Identity Foundation. To go through the whole claims-based logic would take too much time and space on this blog, but it\u2019s nevertheless crucial for understanding the whole concept. If you haven\u2019t already seen it, please take a look [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/\" \/>\n<meta property=\"og:site_name\" content=\"Adis Jugo blog\" \/>\n<meta property=\"article:published_time\" content=\"2011-01-05T22:24:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg\" \/>\n<meta name=\"author\" content=\"adis.jugo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"adis.jugo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/\",\"name\":\"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010 - Adis Jugo blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg\",\"datePublished\":\"2011-01-05T22:24:39+00:00\",\"author\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#primaryimage\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg\",\"contentUrl\":\"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.sharedove.com\/adisjugo\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/\",\"name\":\"Adis Jugo blog\",\"description\":\"The Southern Side\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\",\"name\":\"adis.jugo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"caption\":\"adis.jugo\"},\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010 - Adis Jugo blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/","og_locale":"en_US","og_type":"article","og_title":"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010 - Adis Jugo blog","og_description":"A SharePoint 2010 brought us the whole new authentication world \u2013 Claims-Based authentication, based on the Windows Identity Foundation. To go through the whole claims-based logic would take too much time and space on this blog, but it\u2019s nevertheless crucial for understanding the whole concept. If you haven\u2019t already seen it, please take a look [&hellip;]","og_url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/","og_site_name":"Adis Jugo blog","article_published_time":"2011-01-05T22:24:39+00:00","og_image":[{"url":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg","type":"","width":"","height":""}],"author":"adis.jugo","twitter_card":"summary_large_image","twitter_misc":{"Written by":"adis.jugo","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/","url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/","name":"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010 - Adis Jugo blog","isPartOf":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#primaryimage"},"image":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg","datePublished":"2011-01-05T22:24:39+00:00","author":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c"},"breadcrumb":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#primaryimage","url":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg","contentUrl":"https:\/\/blog.sharedove.com\/adisjugo\/wp-content\/uploads\/2011\/01\/internalexternal_thumb.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2011\/01\/05\/writing-a-custom-membership-provider-and-using-it-for-fba-forms-based-authentication-in-sharepoint-2010-from-the-scratch\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.sharedove.com\/adisjugo\/"},{"@type":"ListItem","position":2,"name":"Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010"}]},{"@type":"WebSite","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website","url":"https:\/\/blog.sharedove.com\/adisjugo\/","name":"Adis Jugo blog","description":"The Southern Side","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c","name":"adis.jugo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","caption":"adis.jugo"},"url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/comments?post=153"}],"version-history":[{"count":0,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/153\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/media?parent=153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/categories?post=153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/tags?post=153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}