The Forums on slxdeveloper.com are now retired. The forum archive will remain available for the time being. Thank you for your participation on slxdeveloper.com!
|
|
Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 03 Aug 06 4:10 PM
|
fiogf49gjkf0d Hi Everyone,
I am writing a custom SalesLogix Membership Provider. If anyone has interests in using this, let me know.
I am debating on making this open source but I am not sure if there is a large need for this out there.
Reply here if you have interests. I may make it freely avialable once its completed.
Features will include: - all core membership provider methods will be fully implemented - basic checking for existing user before creating new account/contact in saleslogix - ability to either send errors to the eventlog or vial email - saftey net will grab the users info and send to a prespecified email address incase writing to the database failed. - SalesLogix Sync Aware (will utilize the SalesLogix OleDb Provider) - When creating a new user from the web, an account, contact and addresses will be generated within saleslogix native tables and an extra set of tables will host the Membership required fields and extended fields. - With this custom membership provider you will be able to use the native .Net login related controls and any extended controls including the extended create user wizard control.
Cheers! |
|
|
| |
| |
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 8:45 AM
|
fiogf49gjkf0d I would most definitely be interested in the provider. I have been working on an ASP.NET 2.0 Wireless version of SLX in VB.NET 2005 and the availability of a SLX-specific provider would certainly make the development of the security and authentication process a bit easier. BTW - ASP.NET 2.0 rocks! A project like this - even a year ago - would have been a nightmare. And, if anyone is curious why we have chosen not to use SLX Mobile is that the ASP.NET 2.0 Mobile controls simply allows us to leverage microbrowsers and becomes more device independent - so that people with WM 5.0 devices and Palm OS devices see similar content via the same codeline. Let us know when it is available to play with - I would be more than happy to provide you feedback if I were allowed to use it. |
|
|
| |
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 9:19 AM
|
fiogf49gjkf0d What I meant by that was security and authentication via ASP.NET 2.0. There are a number of MembershipProvder classes available via ASP.NET 2.0, but you can create a custom class using the base MembershipProvider to leverage other methods. I have been concentrating my development on the other components of this project and had yet to specifically address security and authentication via the wireless web - the provider mentioned would be a custom MembershipProvider for ASP.NET 2.0 that leverages the SLX OLEDB Provider. |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 11:19 AM
|
fiogf49gjkf0d Don is absoluty correct!,
This is a Membership priovider not a Saleslogix Replacement Provider. FYI, Look up Membership Providers and Personalization in asp.net 2.0 help to get a better understanding on what this will do. My Membership Provider will leverage the SalesLogix provider to comunicate with saleslogix databases and the custom tables for the Membership etc.
|
|
|
| |
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 12:08 PM
|
fiogf49gjkf0d Forgive me for being naive but what exactly would the membership provider do? I'm guessing it's a basic map between the ASP.NET membership model and how SLX does things.
I don't see how accounts or contacts come into play here and they seem like an abstraction that isn't necessary. Yeah our company creates a contact under our account for each new user but there's so much involved in just getting that right. That could be a provider of it's own and very easily could be the most time consuming portion of what you're trying to do.
I would also question creating users outside of Admin as I've never done it personally. There's a lot of BLOB data (useroptions, possibly more) that would be difficult to recreate if not impossible outside of Admin because they do a good job of locking you in sometimes.
I'm all for something that will link ASP.NET membership to SLX but I guess I'm not quite seeing the big picture, not really having done something this intense yet. Drop the code early and I'll be able to wrap my head around it a little better. I also could help in the "errors via email" portion as I've got an existing system that uses xsl translation to build HTML body for emails and uses the System.Net.Mail namespace to send them. Probably not the best code in the world but it's done quite nicely so far. |
|
|
| |
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 12:52 PM
|
fiogf49gjkf0d {I don't see how accounts or contacts come into play here and they seem like an abstraction that isn't necessary. Yeah our company creates a contact under our account for each new user but there's so much involved in just getting that right. That could be a provider of it's own and very easily could be the most time consuming portion of what you're trying to do.}
When working with web users that visit the site and you need to track their activities and personalize the site for them, Membership and Personalization is the way to go. Yes you can use SalesLogix Tables Directly, but you would have to write all the Membership and Provider code from scratch and not to mention all the controls. Using a custom Membership Provider saves lots of time as you only have to code one protion of the business logic (membership class) and all of the other related classes will play nicely. As far as accounts and contacts, we are writing a custom literature request page. Currently we get an email from a web form (old way) and we have to manually add these records from the info in the email every day. As you can see this is time consuming and error prone. With the Custom SalesLogix Membership provider we get many benefits including adding the user to SalesLogix so that we can track their web orders and make this info available to their record owners. This page will also support Roles and using the membership provider gives instant access to role security code that .Net provides with no extra coding!
[I would also question creating users outside of Admin as I've never done it personally. There's a lot of BLOB data (useroptions, possibly more) that would be difficult to recreate if not impossible outside of Admin because they do a good job of locking you in sometimes.]
U can create a network user named what ever you want. This user will have rights to read/write to the database. The connection string for saleslogix will be in the Web.Config so this makes it very simple for you to choose any user you wish to use. You do not need to use the Admin account. The saleslogix provider requires you to use a real SalesLogix Username and Password and the provider will obey the rights for this user as they have in saleslogix to prevent nasty things from happening. I am not sure why you are talking about BLOB fields here all of the fields used in the custom provider are SalesLogix only or compatible fields. Every query will also be parameterized to prevent SQL injections etc.
[I'm all for something that will link ASP.NET membership to SLX but I guess I'm not quite seeing the big picture, not really having done something this intense yet. Drop the code early and I'll be able to wrap my head around it a little better. I also could help in the "errors via email" portion as I've got an existing system that uses xsl translation to build HTML body for emails and uses the System.Net.Mail namespace to send them. Probably not the best code in the world but it's done quite nicely so far. ]
This is very easy in .Ne 2.0t. Its a no brainer the email or writing to the event log. I will have the developer put properties in some tags in the web.config to set the smtp settings and probably some properties for which info should be included in the email to help enhance or limit the information sent. There will also be property to indicate to use email or eventloging or both.
Cheers! |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 1:39 PM
|
fiogf49gjkf0d Originally posted by John Padilla
When working with web users that visit the site and you need to track their activities and personalize the site for them, Membership and Personalization is the way to go. Yes you can use SalesLogix Tables Directly, but you would have to write all the Membership and Provider code from scratch and not to mention all the controls. Using a custom Membership Provider saves lots of time as you only have to code one protion of the business logic (membership class) and all of the other related classes will play nicely. As far as accounts and contacts, we are writing a custom literature request page. Currently we get an email from a web form (old way) and we have to manually add these records from the info in the email every day. As you can see this is time consuming and error prone. With the Custom SalesLogix Membership provider we get many benefits including adding the user to SalesLogix so that we can track their web orders and make this info available to their record owners. This page will also support Roles and using the membership provider gives instant access to role security code that .Net provides with no extra coding! |
|
A "user" in that instance isn't a SLX user but a customer that has the lit request assigned to them. This serves a business need for your company but it is honestly external to the scope of a membership provider in it's purest form. You're in essence trying to create a link between SLX security for it's existing users and ASP.NET. When you throw a customer into the mix you are breaking SLX security which translates differently to ASP.NET. Customer Portal users are the only contact level entities that break the existing mold and follow your business need. I'm not saying the need isn't valid but it seems weird to include it is all.
U can create a network user named what ever you want. This user will have rights to read/write to the database. The connection string for saleslogix will be in the Web.Config so this makes it very simple for you to choose any user you wish to use. You do not need to use the Admin account. The saleslogix provider requires you to use a real SalesLogix Username and Password and the provider will obey the rights for this user as they have in saleslogix to prevent nasty things from happening. I am not sure why you are talking about BLOB fields here all of the fields used in the custom provider are SalesLogix only or compatible fields. Every query will also be parameterized to prevent SQL injections etc.
|
|
When you create a userinfo entry does it do things like check against licenses to make sure the user is valid? Does it even consume a license so that they can login to SLX like a user created in Admin? The BLOB data I'm talking about is the useroptions table, usersecurity, and some other things like subscription that to my knowledge was only possible through Admin. I'm sure you can copy BLOB values for other users if you had a base but I've never heard of someone creating a user outside of Admin that functions as if it were created inside it. I consider it that I just haven't tried hard enough so I'm not doubting it can be done but that it requires surgeon-like precision.
This is very easy in .Ne 2.0t. Its a no brainer the email or writing to the event log. I will have the developer put properties in some tags in the web.config to set the smtp settings and probably some properties for which info should be included in the email to help enhance or limit the information sent. There will also be property to indicate to use email or eventloging or both.
|
|
It is rather trivial, I agree. My code is used in our notification manager clone and I had to use HTML body text to utilize the SLXUrlLink "preview" Ryan provided. I generate an XML message file that is used to populate the System.Net.Mail data. An XSL file is used to build the HTML body that is wrapped in an XML node. It's a bit weird but it lets me modify the body of the email message quickly. I know this can be done in a config file as well but I like to keep settings there and the body of an email message doesn't seem like a setting to me. |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 2:31 PM
|
fiogf49gjkf0d u are complicating this too much!
Users are guests to the web site that eventually become records in accounts, contacts etc. They are not SalesLogix users and they never will be.
Simply put, you visit the site, register and this info is stored in the membership table(s). If there is a need to put this visitor into the Accounts, Contacts and Addressses tables etc it will be done, i.e. i.e. to track literature requests and product orders etc.
The SalesLogix user assigned to handle these requests is a real saleslogix user which needs to be added into saleslogix as a network user and occupies a real saleslogix license. This is the user that is placed in the connection string for the provider.
The membership tables help to manage the web stuff like registration, signing in and personalization for asp.net sites only. There is a link for this user which is a contactid in the custom membership table which also links this registered customer to their respective Contact record in SalesLogix. This allows for you to track anything the user does such as requests literature from the web (if necessary)
cheers! |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 3:30 PM
|
fiogf49gjkf0d So it's a way of keeping a contained website with it's own membership linked to SalesLogix in a rough way. From what you're describing it almost sounds like the leadimport for the web but it involves middle-man tables and a slightly better way of doing things (such as the SLX user approving additions to eliminate dupes or other quirks that can be introduced in a system like this). You're providing web client like functionality without dealing with licenses and overhead a customer isn't necessarily interested in but could be built later as necessary. |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 3:43 PM
|
fiogf49gjkf0d Yes its a way to offer web site registration and its not rough its very smooth and clean. And yes like web leads but the membership provider is customized so that i can prevent some basic duplication issues etc.
I am not writing a full fledged literature request secnario. We just offer a subset of our literature as requestable from the web. Like a traditional shopping cart does. So by using the custom membership provider, we can offer other things outside saleslogix such as personalization for the site which is a traditional ASP.net 2.0 scenario and has nothing to do with saleslogix. But when we need to offer a saleslogix based custom module or comunication to saleslogix then the provider offers the link of the registered user and its contact record in saleslogix. Say we want to find out if this user has requested X number of a certain literature this month, we have his contactid associated within his membership record and we can grab that and write custom code (outside the membership provider) to return this desired info from saleslogix. I would not say its web module like functionality as that is a way of doing things completely than how the SalesLogix Web client does.
Cheers! |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 04 Aug 06 5:25 PM
|
fiogf49gjkf0d John, now you've explained this in more details it clear to me this would be extremely useful. Especially for anyone that what's to integrate a website with SLX registering people for events selling products or just tracking usage.
Would be great to see and as Jeremy said if you could “drop the code early” it would help some of us get our heads round it.
-- Duncan |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 07 Aug 06 12:29 PM
|
fiogf49gjkf0d Sort of, a membership provider is a new feature in ASP.NET 2.0. It allows you to use an existing framework and plugin in your own membership logic (ie: authentication, user's managing their accounts, storing member data, managing passwords, integrate to personalization & role-management systems in ASP.NET 2.0, etc).
For example, on this site I built all custom screens for logging in/authentication, managing your account, changing your password, etc etc etc. The site's membership data is stored in a SQL database. If I had built this site in ASP.NET 2.0 (which didn't exist back then of course) I could have used all the built in membership stuff in ASP.NET 2.0. If I wanted to change how the membership data was stored, for example if I wanted to use SLX to store all the slxdeveloper.com members as contacts, I could simply switch over to this custom SLX membership provider that John is talking about here and that would be it (of course since this site has been running and has many members I would have to migrate the existing member data over as well). But basically, that would be it. I would now have all my "user" information for this site stored as SLX contacts. A member could change their password, manage their account, etc and it would all be handled by that provider and using screens that support that provider (that I didn't have to build because the exist for me already - I just needed tie them to my membership provider).
Where this SLX Membership Provider would come in good use is building custom sites and integrating the members of the site with SLX, so they were all stored as contacts. I could build a custom portal site for my customers, or better yet, grab an existing, already built portal framework out there and plug the SLX Membership provider into it. Now, I can have my customers log into that site and do whatever functionality i've built into that site, but the credentials they use are their contact record details. I can allow them to manage their "account" and update their address, phone, whatever - but really they are updating their contact record in SLX. The great part about this is that I didn't have to build any of the logic for that. I just use the SLX Membership provider with the built-in screens for these things in ASP.NET 2.0 and didn't have to write any extra code to integrate my website users with SLX.
As more and more frameworks migrate to 2.0, you'll see more and more use of membership providers. Having a SLX one makes complete sense so we could just flip a website over to be integrated with SLX for it's membership without having to write any code to do so.
Make more sense now? |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 07 Aug 06 2:14 PM
|
fiogf49gjkf0d That makes complete sense now. My only request would be to make the link to SLX tables more customizable. This way your members could be contactids (1), userids (2) , or in another table (3) if you don't want to cloudy your contact list with website data.
My company only stores the relevant contacts for our customers, not their entire employee roster. I personally could use all 3 types but probably not all under the same website initially. I could see type 1 and 3 together but for security purposes I would never mix internal users with external customers just to be safe (though the web client/customer portal does manage to handle this).
This request may be a version 1.1 type thing where all you're doing now is getting a basic model in place. Then we can go through and abstract out what works to allow for the multiple types. |
|
|
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 08 Aug 06 9:34 AM
|
fiogf49gjkf0d Jeremy,
The reason for the provider model is customization. If the given user case scenarios do not fit into your business need then it is pretty easy to extend it. The provider model pretty much gives a plug and play feel where you can indeed "Plug-In" the functionality you need. I can see the case for Contact or User based authentication but to pretty much develop the SLX provider to handle any table is I imagine out of the domain as this defines to many unknowns especially where different tables implies different schema. I would think that this code also should be as effecient and core as possible as bad membership code can cause perf problems and make the usability undesireable. Now depending on how it is released out to the community binaries or source code it should be relatively easy to change the hooks to point to a different SLX table. Also remember that it is possible to inherit and override specific functionality as long as the appropiate methods are marked virtual (c#) or overridable (vb.net). I too would be interested in this component when it comes out.
Mark |
|
|
| |
|
Re: Custom SalesLogix Membership Provider for ASP.NET 2.0
Posted: 28 Sep 11 11:03 AM
|
fiogf49gjkf0d Was this ever published as an open source project? I'm interested in this -- we're likely going to implement Sharepoint 2010 for an extranet portal and I'd love to have the login and membership data stored with contact records we already have in SalesLogix...
John - if it was never published, is there any chance of getting the source code to work with? |
|
|
|