{"id":1956,"date":"2015-12-16T19:28:46","date_gmt":"2015-12-16T19:28:46","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1956"},"modified":"2025-10-09T07:26:48","modified_gmt":"2025-10-09T14:26:48","slug":"the-couchbase-asp-net-identity-storage-provider-part-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/","title":{"rendered":"The Couchbase ASP.NET Identity Storage Provider: Part 1"},"content":{"rendered":"<p>The <a href=\"https:\/\/www.asp.net\/identity\/overview\/getting-started\" target=\"_blank\" rel=\"noopener\">ASP.NET Identity System <\/a>is a new collection of software components for supporting authourization and authentication within ASP.NET applications. It provides significant improvements over the previous ASP.NET Membership and Simple Membership and aims to make it easier support non-relational backing stores, such as Couchbase Server. In addition to authentication and authorization it provides profile store, role and claims-based authorization, support for social logins such as Facebook and Twitter and OWIN support&#8230;it no longer depends upon the System.Web namespace.<\/p>\n<p>The Couchbase ASP.NET Identity Provider aims to be a \u201cfull-fledged\u201d provider supporting nearly all if not all of the features of the ASP.NET Identity API. In this Developer Preview (DP) only the authentication portion has been tested; in subsequent releases role and claims-based authorization will be added as well integration with 3rd party social media providers via Single Sign-On (SSO), in addition to features such as SMS and Email Two-Factor Authentication. In this post<\/p>\n<p>we will show you how to integrate the Couchbase ASP.NET Identity Provider DP with an ASP.NET MVC Web Application.<\/p>\n<h2>Getting Started<\/h2>\n<p>The package is available on NuGet or you can build it yourself from the repository on Github which is found here. For this blog we will use the packages published through NuGet.<\/p>\n<p>Using Visual Studio 2013 (or perhaps 2015), create a new MVC Web Application as follows:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step1.jpg\" \/><\/p>\n<p>You can name it whatever you like; I called it CouchbaseIdentity. Click \u201cOK\u201d and then select MVC in the next dialog.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step2.jpg\" \/><\/p>\n<p>Click \u201cOK\u201d again and Visual Studio will create the MVC project for you. By default, Visual Studio will use the Entity Framework Identity Provider. Since we want to use the Couchbase Identity Provider, we need to remove the package dependency on the Entity Framework provider, add reference to Couchbase Identity package and then replace all references to using Microsoft.AspNet.Identity.EntityFramework; with Couchbase.AspNet.Identity.<\/p>\n<p>To change the package dependency, open the NuGet Package Manager and locate the Microsoft ASP.NET Identity EntityFramework package and uninstall it:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step3.jpg\" \/><\/p>\n<p>You will have to restart Visual Studio at this point. Then switch to the \u201cOnline\u201d tab and change the dropdown to \u201cInclude Prerelease\u201d and type \u201ccouchbase\u201d into the search text box:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step4.jpg\" \/><\/p>\n<p>Select the Couchbase ASP.NET Identity and click \u201cInstall\u201d and \u201cClose\u201d to close the dialog.<\/p>\n<h2>Updating the Package Dependencies<\/h2>\n<p>Now that you have swapped the default Entity Framework Identity Provider packages and replaced it with the Couchbase ASP.NET Identity dependencies and package, you need to update the project to use the new provider.<\/p>\n<p>First, go through and replace every reference to<strong><em> using Microsoft.AspNet.Identity.EntityFramework; <\/em><\/strong>with<em><strong> using Couchbase.AspNet.Identity<\/strong><\/em>;. The easiest way to do this is a simple search and replace (Ctrl F).<\/p>\n<p>Then in IdentityModels.cs, change the ApplicationDbContext class to derive from ThrowableBucket instead of IdentityDbContext and then override the base constructor so that the Bucket that you chose to store your Identity information is passed in. I chose to store my Identity information in the \u201cdefault\u201d bucket; you could create a separate bucket if you chose to:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step6.jpg\" \/><\/p>\n<p>Note the \u201cThrowableBucket\u201d is a wrapper around some the CouchbaseBucket CRUD methods that changes the behavior of the SDK slightly; operation failures are thrown. In future versions, this may change!<\/p>\n<p>Finally, open the Global.asax file and add the code to initialize the Couchbase SDK, which the Couchbase ASP.NET Identity Provider uses:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step5.jpg\" \/><\/p>\n<p>The ClusterHelper is a helper class for the Couchbase .NET SDK which makes it easy to manage buckets and references. It\u2019s recommended that you initialize the ClusterHelper in Application_Start and close it in Application_End. Once you have completed this step, the web application is ready to use Couchbase as a backing store for identity and profiles!<\/p>\n<h2>Testing it out!<\/h2>\n<p>Once you have completed the steps above, you can test the integration by running the application (right click&gt;debug=&gt;Start new instance) and navigating to the register page:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step9.jpg\" \/><\/p>\n<p>Fill in your email, password and confirm you password, then click \u201cRegister\u201d.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step10.jpg\" \/><\/p>\n<p>Assuming all went well you should be redirected back to the home page and you should see a \u201cHello \u2026.\u201d message. You are now authenticated!<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step11.jpg\" \/><\/p>\n<h2>How the Profile is Modeled in Couchbase<\/h2>\n<p>The default identity provider is based upon a series of relational tables with foreign keys linking the data together. The Couchbase ASP.NET Provider takes the NoSQL approach and stores the data as JSON documents and uses \u201cmanual indexes\u201d for secondary indexes in cases where the key to fetch the data is not a primary index.<\/p>\n<p>The primary document has the following structure:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step7.jpg\" \/><\/p>\n<p>It\u2019s a fairly simple document; in nearly all cases we use \u201cembedding\u201d to store relationships such as Roles and Claims (we will go over these in a later blog post!). To perform a lookup against a field within this document, we create a second, binary document which associates the email address of the profile with the primary key (914dc..); this is similar to a modeling concept called \u201creferring\u201d.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step8.jpg\" \/><\/p>\n<p>We could have used N1QL queries which would make the \u201cmanual\u201d secondary indexes obsolete, but the intention is to support Couchbase Server 3.0 and greater; N1QL will be a feature of Couchbase Server 4.0 which will be released later this year.<\/p>\n<h2>How to get it:<\/h2>\n<p>The Couchbase ASP.NET Identity Provider is available as a package on NuGet or can be built directly from source using the Github reposotory. If you wish to contribute, pull requests are always welcome. If you find a bug, you can create a Jira ticket and you will be notifed about its current status.<\/p>\n<ul>\n<li>Github: <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-aspnet-identity\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/couchbaselabs\/couchbase-aspnet-identity<\/a><\/li>\n<li>NuGet: <a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseIdentity\/1.0.0-dp\" target=\"_blank\" rel=\"noopener\">https:\/\/www.nuget.org\/packages\/CouchbaseIdentity\/1.0.0-dp<\/a><\/li>\n<li>Jira: <a href=\"https:\/\/issues.couchbase.com\/browse\/CBASP\" target=\"_blank\" rel=\"noopener\">https:\/\/issues.couchbase.com\/browse\/CBASP<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The ASP.NET Identity System is a new collection of software components for supporting authourization and authentication within ASP.NET applications. It provides significant improvements over the previous ASP.NET Membership and Simple Membership and aims to make it easier support non-relational backing [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1814,10126,1815,2201],"tags":[1452,1455,1456],"ppma_author":[8970],"class_list":["post-1956","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-application-design","category-asp-dotnet","category-best-practices-and-tutorials","category-tools-sdks","tag-asp","tag-authentication","tag-authorization"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Couchbase ASP.NET Identity Storage Provider: Part 1<\/title>\n<meta name=\"description\" content=\"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Couchbase ASP.NET Identity Storage Provider: Part 1\" \/>\n<meta property=\"og:description\" content=\"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-16T19:28:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:26:48+00:00\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"The Couchbase ASP.NET Identity Storage Provider: Part 1\",\"datePublished\":\"2015-12-16T19:28:46+00:00\",\"dateModified\":\"2025-10-09T14:26:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\"},\"wordCount\":958,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"asp\",\"authentication\",\"authorization\"],\"articleSection\":[\".NET\",\"Application Design\",\"ASP.NET\",\"Best Practices and Tutorials\",\"Tools &amp; SDKs\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\",\"name\":\"The Couchbase ASP.NET Identity Storage Provider: Part 1\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-12-16T19:28:46+00:00\",\"dateModified\":\"2025-10-09T14:26:48+00:00\",\"description\":\"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Couchbase ASP.NET Identity Storage Provider: Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\/\/x.com\/jeffrysmorris\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/jeff-morris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Couchbase ASP.NET Identity Storage Provider: Part 1","description":"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.","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:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/","og_locale":"en_US","og_type":"article","og_title":"The Couchbase ASP.NET Identity Storage Provider: Part 1","og_description":"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.","og_url":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-12-16T19:28:46+00:00","article_modified_time":"2025-10-09T14:26:48+00:00","author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"The Couchbase ASP.NET Identity Storage Provider: Part 1","datePublished":"2015-12-16T19:28:46+00:00","dateModified":"2025-10-09T14:26:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/"},"wordCount":958,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["asp","authentication","authorization"],"articleSection":[".NET","Application Design","ASP.NET","Best Practices and Tutorials","Tools &amp; SDKs"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/","url":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/","name":"The Couchbase ASP.NET Identity Storage Provider: Part 1","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-12-16T19:28:46+00:00","dateModified":"2025-10-09T14:26:48+00:00","description":"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Couchbase ASP.NET Identity Storage Provider: Part 1"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, Senior Software Engineer, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/author\/jeff-morris\/"}]}},"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","author_category":"","last_name":"Jeff Morris, Senior Software Engineer, Couchbase","first_name":"Jeff","job_title":"","user_url":"","description":"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language)."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=1956"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1956\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=1956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=1956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=1956"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=1956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}