05 Oct 2012
19 Oct 2012
Link to this post
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:
<add name="Default" type="Telerik.Sitefinity.Security.Data.SitefinityMembershipProvider, Telerik.Sitefinity"/>
<add name="MyCustomMembershipProvider" type="Test1.MyCustomMembershipProvider" connectionStringName="stdConnection" passwordFormat="Clear" applicationName="/" />
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.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.