Custom membership provider

Posted by Community Admin on 04-Aug-2018 14:25

Custom membership provider

All Replies

Posted by Community Admin on 19-Oct-2012 00:00

Hi,

I am in the process of evaluating the product.  I can see its fairly easy to quickly build a web site, I have been able to do everything I wanted in regards to integrating my custom user controls into sitefinity pages.

The problem I have is that I do not want to use the Sitefinity membership provider.  All my usernames and passwords are already stored in a separate SQL Server database.

But all the menus / submenus are configured using Sitefinity role.  Actually everything is public except a few links in my "Members" section that I put permission to "Authenticated".  So what I need is once the user has been authenticated against my other database, I need to let Sitefinity know the user is authenticated so the menus act as such.

So I created a custom membership provider and override the necessary methods, in particular the ValidateUser() method so the validation is made against my other database.  But that does not work. 

For some reason I get an error.

Here is what I did:
1- The settings are "Claims Based Authentication"
2- In Sitefinity I created a page, added a Login widget.
    - I edited the properties and changed the MembershipProvider to my: MyCustomMembershipProvider
3- In the web.config file, I updated the membership section to look like this:

<membership defaultProvider="Default">
<providers>
<clear/>
<add name="Default" type="Telerik.Sitefinity.Security.Data.SitefinityMembershipProvider, Telerik.Sitefinity"/>
<add name="MyCustomMembershipProvider" type="Test1.MyCustomMembershipProvider" connectionStringName="stdConnection" passwordFormat="Clear" applicationName="/" />
</providers>
</membership>

================================
I get the error "Object reference not set to an instance of an object."
Here is the stack pile:
[NullReferenceException: Object reference not set to an instance of an object.]
Telerik.Sitefinity.Security.UserWrapper.CopyFrom(MembershipUser user, String applicationName) +161
Telerik.Sitefinity.Security.MembershipProviderWrapper.GetUser(String userName) +77
Telerik.Sitefinity.Security.Claims.ClaimsManager.ValidateUser(String domain, String username, String password) +231
Telerik.Sitefinity.Security.Claims.SecurityTokenServiceHttpHandler.TryParseInputToken(NameValueCollection values, User& user, RequestMessage& message) +445
Telerik.Sitefinity.Security.Claims.SecurityTokenServiceHttpHandler.ProcessRequest(HttpContext context) +1231
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +532
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +255

===========
Being able to authenticate a login against my database so the menus/sub menus of the rest of the site act as normal (visitor or authenticated) is the only thing I have to figure out before buying this product.

I have read many forum message regarding all this but I just can't make it work.  Would it be easier to use a custom login form.  And once I validate the user/password, do some trick to programmatically authenticate a "fake user" created in sitefinity so everybody connecting to the website would use the same user since anyway its just to handle the visible/hidden menu.

Thanks for helping me.

Posted by Community Admin on 24-Oct-2012 00:00

Hi,

 Thank you for contacting Telerik. Please send us the databases and you project because it seems that you are doing everything right.

All the best,
Ivan Georgiev | Sitefin1ty
the Telerik team
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

This thread is closed