Home | Advertising Info124 USERS CURRENTLY ONLINE   
PowerASP
   Site Search Contact Us Sunday, May 29, 2022  

Active Server Pages ASP a directory of ASP tutorials applications scripts components and articles for the novice to professional developer. CJWSoft ASPProtect ASPBanner ASPClassifieds



Blog Entry: 3/25/2006 1:38:17 PM

I think this addresses your question

http://support.cjwsoft.com/code/moreinfo144-1.htm

 

,

I will actually explain how to set access_levels and/or groups...

in "users/add_new_account.asp"

carefully edit with a text editor
find this part
 
CmdAddUser.Fields("Access_Level") = "4"
 
that is where the acess level gets set...
you can change the level or remove that line all together if you dont want one set
 
now for groups you would add this line in the same area
 
CmdAddUser.Fields("Groups") = "*3*"
 
or
 
CmdAddUser.Fields("Groups") = "*1*,*2*,*3*"

Groups access for a user is stored in one field in the database like you see above. If you are confused what you should be saving in that field I suggest simply setting a user to whatever groups you want via the admin area and then looking in the database to see what got saved in that field. It's pretty simple really how they are stored.

*1*,*5*,*9*

that user would be a member of groups 1,5, and 9
,



Say, I just thought of one last thing.

Your not by any chance running something like norton antivirus with norton script blocker on that server are you ?

It can cause issues when ASP uses the filesystem object and cause never ending page hangs like you are having.

There are other apps as well that can cause it to hang.

http://www.aspfaq.com/show.asp?id=2180

And ASPProtect does use the filesystem object., Along with being able to set an expiry date or number of impressions, is it possible to add another option for a banner to be "non-expiring"?

With our current ad software (which we are transferring all data from to ASPBanner), we run banners for both paid advertisers, and for our own services. The banners relating to our own services, we would like to set to "non-expiring" so they appear all the time. ,

I am using ASPProtect's password program, which has been very successful, for managing over 1,500 military veterans' memberships at http://www.vspa.com.  What I am trying to do now is utilize the "Groups" code, as generated by the Admin page, to prevent members with expired accounts (and non-members) from accessing restricted "members only" .ASP pages they may have bookmarked, or found via web search. The code generated and used is as follows:

<%@ LANGUAGE="VBSCRIPT" %>
<!-- Begin ASPProtect Code -->
<!-- Groups with access to this page. ( * ADMIN * Member Current * Member Life * Officer/Staff * ) -->
<% GROUPACCESS = "10,12,14,19" %>
<!--#INCLUDE FILE="check_user_inc.asp"-->
<!-- End ASPProtect Code -->

The above is placed over the <html><head> statements on the page.

When I am logged in the code works perfectly! When I log off and try the URL again, the page appears in its entirety but with a Login box for Username and Login Password at the top of the page. You may view the problem at: http://www.vspa.com/aspprotect/vspa-password-enter.asp .

What I would like to have happen is expired members and non-members would be sent (or Redirected) to a Login page. I do not want the Login password box to merely be inserted above the page that I am trying to keep them from visiting.

Don Poss,
VSPA Webmaster

,

You might just learn something and actually get your project finished before 2010

your over there hacking away on your virus infested WaReZ machine

 

LOL thanks for the good laugh-- i guess its time to do some reading and making my own mods to the program..

btw i never insulted cafrepress.. not sure where you got that from- just advised that what they have is exactly what i want to have done. How much for your service?

,

Hello,

You'll need to find a validation function to test for it.
Either server side or right in the form via client side javascript.

I dont have any experience with validating zip codes here much less UK.

Google it would be my best advice.. or maybe find some free app written in UK format and see how they did it.

Good Luck..

And if ya find anything post it here if ya like

cwilliams38381.5607638889,

Trying to make sense of this.  I am still confused.  In the file config_inc.asp.  I found the setting for "uploaddirectory".  That entry looks like this [UploadDirectory = CmdGetConfiguration("UploadDirectory")].  I assume there is a config file where the value of upload directory is located. 

The settings in the config_inc.asp file have not been changed.  they are set to the way it was delivered.  Is there a document that gives instructions as to what and where the config settings are to be changes?

, I did not set that variable in the IPN code that aspprotect uses. It is optional.

You will want to download PayPal's IPN documentation and see what the variable is called and then add it to the IPN form code if you want to use it.

it will be a hidden form variable (one line of code added to) paypal2.asp,

False alarm. Dumb user alert (both the classifieds customer and me).

When I test fixes, I need to be looking at the right Ad_ID to get correct results

,

Are there any problems with modifying the default database fields.

I need to have an update from net billing and they use different settings in the database than the default.

Will the interface still be functional?

 

 

,

Connecting user is dbo of database.

User_ID is primary key with auto increment identity.

SQL Script of current table:
CREATE TABLE [dbo].[Security_Users] (
 [User_ID] [int] IDENTITY (1, 1) NOT NULL ,
 [First_Name] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Last_Name] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Company_Name] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Username] [nvarchar] (75) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Password] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Access_Level] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Notes] [nvarchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Admin] [bit] NOT NULL ,
 [Active] [bit] NOT NULL ,
 [Expiration_Date] [smalldatetime] NULL ,
 [Email] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Address] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [City] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [State_Province] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Zipcode_Postal_Code] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Phone] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Counter] [int] NULL ,
 [Last_Access] [smalldatetime] NULL ,
 [Login_Limit] [int] NULL ,
 [Custom1] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Custom2] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Custom3] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Custom4] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Custom5] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Custom6] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [ValidateEmailCode] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Date_Created] [datetime] NULL ,
 [Validated] [bit] NOT NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Security_Users] WITH NOCHECK ADD
 CONSTRAINT [PK_Security_Users] PRIMARY KEY  CLUSTERED
 (
  [User_ID]
 )  ON [PRIMARY]
GO

,

Sorry, you cannot, that is how it works and that is how it has to work for reasons I am not going to try to explain as it is pretty technical. (it works the same way even when not using paypal and using email authentication... nearly every registration system out there does it that way under an email authentication scenario or a PayPal IPN thing.)

Basically, if you are concerned about it you need to periodically manually check for accounts that were never activated and delete them. Maybe when I get some time some day I will make a little interface to help find those and clean them up at once.

 

 

, I just remembered the current skin is stored in a text file in the pictures folder. If it did not have permissions for writing it could give you trouble.  That could of had something to do with it.cwilliams38295.3821064815, that information is actually not helpful in determining whether parent paths is enabled or not.

You should really ask your hosting company or better yet try doing a server side include to page one directory up and see if you get an error.

example

<!--#include file = "../myfile.asp"-->
cwilliams38302.6484259259, We have no add-ons for anything but accepting payments through paypal and 2checkout... if you want to accept payments through some other setup you have make a payment directory addon and write code to do it based on the system you are using..

We provide the ASP source code so that is doable for someone that is good with ASP. If not then it won't be doable.
,

You really should check out the documentation regarding the config file before you go any farther.

If the server supports ASP.NET you do not have to spend any money to have real fast loading thumbnails.


Also, licenses of ASPImage only cost 69.95 and regardless any quality host supporting ASP should have one of the 3 supported resizing components installed or else you should consider a better host like www.alentus.com Places like that have good hosting prices and give you access to 3000.00 worth of 3rd party asp components.

 

, I have ASPPhotoGallery installed. Everything has been working great for some time. Suddenly, for no apparent reason, I am not getting the "Hits" incremented when a user opens an album. It works when an administrator is logged on. Does not for any anonymous users. Everything else seems to work fine. Again, this used to work. Any ideas. ,

This is a great article for newbies..

Hints & Tips when working with ASP
http://www.powerasp.com/content/hintstips/common_sense.asp

cwilliams38436.5949768519,

(FREE) Nov 23 2005 Update Files

If you purchased ASPProtect Version 7.x before Nov 23 2005 then you can download these Update Files.

(These are non-critical updates.. only update if you want the described changes below)

These updates do the following..

  • Make the Tabs in the Admin area move up and down as you navigate around so they look more like tabs used in a file cabinet.
  • Updates the import/export process so the tab delimited text files created now store the passwords in plain text instead of encrypted. I have been thinking about this one for a while now and I think it is better this way as it was confusing a lot of people. If can also kill the whole process if by chance the encrypted output of a password contains a line break of sorts. There is no way to deal with that scenario so this is way the import/export process is going to work from now on. This also means you should be VERY carfeful about leaving export files lying around as they will have the passwords in them.
  • Updates the "expected_paths.asp" in the data folder because the paths it was generating had an extra "data/" in it.
  • Updates the users page so it will not show the import/export link if you have not entered a path for the export files in the settings.
  • Adds an Activity Tab if using the Activity Tracking features instead of the links it used to put on the users page that most people didn't see.



To install these just copy them in over the old files.

Now of course back up your existing files so can revert back if there is a problem or you do not like the changes. If you made any custom changes to any of your pages use your head and realize that copying these in over your existing files will overide any custom changes you made. (that is your business, I am just warning you)

2005-11-23_163025_ASPProtect_v7_11-23-2005_update.zip

,

If I also password protect the pricelist pages then someone will have to login twice.

nobody should have to log in twice... ?

session variables keep track of access... once your in - your in and you can browse to and from any password protected pages you like

If it is making you log in each time then cookies are most likely disabled.. session variables requires cookies being on to work.. cookies being on  is a requirement of aspprotect and is how Formed Based Authentication works..

let me know if that is the issue there...

you shouldnt have to be logging in more than once per session

Thats the whole point of the application...

,

here ya go

http://support.cjwsoft.com/code/moreinfo169-1.htm

 

 

,

Umm, if your using MSACCESS your using MSACCESS

SQL server has nothing to do with it.

,

Editing using Visual Studio.NET

Here are directions for editing the application using Visual Studio.NET
2002 or 2003 version.. either should work

Some of you are wondering why I didnt just give you the project files.
It is best you go through this process and really understand what is going on.
Also, I dont use VS 2002 so I wouldnt be able to give you project files that would work with that. Not to mention there is 100% chance my prject files wouldn't work for you anyway because of path differences and other things.


Anyway.. on with the instructions...

1st.. make sure IIS, ASP.NET, .NET Framework, and Visual Studio.NET are all installed correctly and up to date.

Open Visual Studio.NET

File -  New Project

Select a New Visual Basic ASP.NET web application.

give the new web to be created a name.. I called mine "aspprotectdotnet"

Hit Ok..

Now. once the project opens up we need to delete a few things in the solution explorer window.

So delete "webform1.aspx" , "deletestyles.css", "Global.asax", "AssemblyInfo.vb", and "web.config"

Basically all the files under the project...

Now... you should have the aspprotect.net files unzipped somewhere on you hard drive...

open that folder and select all the files and folders like so




Now drag those selected files and folders to the solution explorer window of Visual Studio.NET right on to the name of the web. In my case "aspprotectdotnet"

It might say this folder already contains a folder names Bins.. just tell it to copy over and continue on any prompts like that.

You'll notice your project is now populated.

Open up the references tab in the solution explorer window as we need to add some references to the dlls in the bin folder of this project. This is needed so the compile process and function correctly.

Right click on references.. click add reference
Then browse....browse on your hard drive to the location of the new web and the bin folder within it. 

In my case... "C:\Inetpub\wwwroot\aspprotectnet\bin"

Choose "aspprotectlicense.dll"

Hit open...

Now do the same thing again until you have added all the dlls in that bin folder to the references.. 

Now.. click add-references again and this time choose
"system.management" from the choices in the .NET tab

Once all of that is done your references should look like this




Now in the Visual Studio.NET menu system up top..

Choose Build - Build Solution

If you did everything right you will see something like this in the build window


------ Build started: Project: aspprotectdotnet, Configuration: Debug .NET ------

Preparing resources...
Updating references...
Performing main compilation...
Building satellite assemblies...

---------------------- Done ----------------------

Build: 1 succeeded, 0 failed, 0 skipped


You now have the visual studio side of things all set up.

To make the project actually run we now have to set some permissions and edit the web.config file.

Using windows explorer browse to the web the app is in. Right click on the "_database" folder and give that folder and all the child folders within it. Modify permissions for both the Anonymous webserver account and the ASPNET account. These accounts might not show up until you dig into the advanced tab and click find now to show all the accounts on the machine.

Permissions screen looks like this...



Once that is done go back the solution explorer window in visual studio.

Open the docs folder.. right click on "sysdiag.aspx" and choose view in browser.

It should complie the project again.. and then run that page in either the internal or external browser depending on how you have that set up.

That page will report back path information.
 "BTW.. for security reasons this page should be removed from any production server after installation is complete.. this is very important"
In my case it looks like this.

Probabale AppRootPhysicalPath
c:\inetpub\wwwroot\aspprotectdotnet

Probabale AppRootUrlPath
http://localhost/aspprotectdotnet

Probabale Path to Access Database
c:\inetpub\wwwroot\aspprotectdotnet\_database\aspprotectnet2 002.mdb

Now we need to edit the web.config file... your going to need to know some of the path information above.

In solution explorer double click on web.config.

Now edit the AppRootPhysicalPath, AppRootUrlPath, and CN keys accordingly.

In my case they will look like this.

<!-- PATHS USED BY THE SYSTEM -->
<add key="AppRootPhysicalPath" value="c:\inetpub\wwwroot\aspprotectdotnet" />
<add key="AppRootUrlPath" value="http://localhost/aspprotectdotnet" />

<!-- MICROSOFT ACCESS KEY -->
<add key="Cn" value="Driver={Microsoft Access Driver (*.mdb)};Dbq= c:\inetpub\wwwroot\aspprotectdotnet\_database\aspprotectnet2 002.mdb;Uid=admin;Pwd=" />

Now.. because our web is really not in the root of our virtual directory which starts at "inetpub/wwwroot" we need to edit another tag in this file.

Find the forms tag near the bottom.

<forms name=".aspprotect~net" loginUrl="/aspprotectlogin.aspx" protection="All" timeout="60" path="/" />

Change it to say this

<forms name=".aspprotect~net" loginUrl="/aspprotectdotnet/aspprotectlogin.aspx" protection="All" timeout="60" path="/" />

Notice tha part in bold that we added.

Now, you may also want to check the temp license key info while you are in that file and make sure it is not expired but I am not going to get into that here.

Now save and close that file and do a compile again.

In solution explorer open up the "aspprotectadmin" folder.
Right click on default.aspx and click browse

You should see the login prompt in your web browser..

Log in with   

admin
temp

all lower case

You should see the users screen of the application,

Click on the system info tab up in the top left... make sure all those paths are correct and save it.

Go to the settings page of the admin area. Make sure all those paths/settings are correct and save it.

Congratulations... you just set up a visual studio web project from scratch and our now ready to edit and compile an advanced web application.

From here on your on your own, but feel free to ask questions in the forums as you will probably get help from myself or others who own the software.


One last thing... because we are not in the true root of the web on the development machine the examples in the example folder will need the reference to the "protectpage.ascx" file modified before they will work

It will need to go from

Src="/protectpage.ascx"

 

to

 

Src="/aspprotectdotnet/protectpage.ascx"


If this app was installed in the true root of a domain on a real webserver.. you would not have to edit the forms tag in the web config file or change the paths in the examples as they would be correct the way they came

,

The way the application ships there are no password confirmation areas anywhere ? Please be more specific as to what you have done and if any mods are involved ?

If you are talking about one of the MODS please realize they are not supported. http://support.cjwsoft.com/code/moreinfo459-1.htm

Even though they are not supported I look them over pretty closely and I know of no issue like you mentioned so I would suggest re-downloading the MOD. Perhaps you got a corrupt download or file.

,

yes, usernames and passwords are both case sensitive. It increases security.

,

ok, well if you want to test on your own....  in the ipn.asp file for the subscription folder you will see this area of code used for testing

' Un-comment this section and give this directory proper permissions to enable logging to a text file
' Very helpful for troubleshooting
'   Set ObjMyFile = CreateObject("Scripting.FileSystemObject")
'   LogFileName = ("paypal.txt")
'   'Open Text File.. If doesn't exist create it and append to it .. If exists just append to it
'   Set WriteMyData = ObjMyFile.OpenTextFile(Server.MapPath("paypal.txt"),8,True)
'   RowHeaderString =  ""
'   RowHeaderString =  RowHeaderString & OrderID & vbTab
'   RowHeaderString =  RowHeaderString & Custom & vbTab
'   RowHeaderString =  RowHeaderString & User_ID & vbTab
'   RowHeaderString =  RowHeaderString & subscr_id & vbTab
'   RowHeaderString =  RowHeaderString & txn_type & vbTab
'   RowHeaderString =  RowHeaderString & subscr_date & vbTab
'   RowHeaderString =  RowHeaderString & Access_level & vbTab
'   RowHeaderString =  RowHeaderString & Groups
'   WriteMyData.WriteLine(RowHeaderString)
'   WriteMyData.Close

now that folder will need modify permissions for the text file to be written to but this is a good way to test if the ipn.asp page ever gets hit by paypal.

ITS REAL IMPORTANT THAT THE TEST FILE CAN BE WRITTEN TO OR DOING THIS WILL JUST CAUSE MORE ISSUES

To ensure the text file can be written to and permissions are correct for that folder you can make a new .asp in there and run this to see if the text file writing works

   Set ObjMyFile = CreateObject("Scripting.FileSystemObject")
   LogFileName = ("paypal.txt")
   'Open Text File.. If doesn't exist create it and append to it .. If exists just append to it
   Set WriteMyData = ObjMyFile.OpenTextFile(Server.MapPath("paypal.txt"),8,True)
   WriteMyData.WriteLine("the file was written to")
   WriteMyData.Close

Now, you can even change the location of the text file to place that does have permissions if you like.

This is what I would do if I was in there... then I would make some test payments using 1 cent and another paypal account (your allowed 2)

and see what happens

it is always possible the subscription code may have a bug in it. The last time I tested I only tested the single payment folder which worked perfectly. If I have time in the next couple days I am going to test the subscription stuff again. If there is something wrong I can cure it quickly.

The two routines share a lot of code in common.

cwilliams38421.6488773148,

Hey, I run a business and I will not have things like that mentioned in these forums.

,

Thought this would be easy.  A few more pointers should get the database connection to work:

 

1) How do you decide whether it is a DSN (system datasource) or not? Does just putting the file in the ODBC make it so? 

 

2)We have other files in there for other server applications, does that mean we’re stuck using DSN’s or is the file independent of that control dialog?

 

3) Assuming we get rid of using DSN for this database (or not), does the code go referenced in your article http://www.powerasp.com/content/hintstips/permissions.asp apply here or should it just work?

 

What else are we missing?

, Here is an example of a query I made in MSACCESS that deletes all users that belong to Group ID of 3. I used the graphical query designer in MSACCESS to do this. Took a few minutes.

DELETE
FROM ASPP_Users
WHERE (((InStr([ASPP_Users]![Groups],"*3*"))>"0"));

Because of the way groups are stored in the Groups fields you have to use the InStr function to determine if the user is part of a particular group
We are deleting all users that of Group ID of 1 so we look for *3* in this example

The SQL statement for a MSSQL database may be slightly different but the general Idea is the same


The SQL statment used in an ".asp" page will be very similar as well.

SQL Statements are the TRUE POWER of working with databases. They are something everyone should learn to work with because they allow you to do some very powerful things.,

Yes.

Now its OK

Thanks Christopher

, Hello,

I want to create a user for my manager. This user should be able to see all statistics (Reports) and all (Banners). But, he should not be able to edit anything.

How can I create the type of user described above?


Best regards,
Mohammad Al-Mohsin

,

IT worked just as cwilliams said. I did see the IP address being stored in the table but it didn't dawn on me that it was tied in to the view count, I tried it from a different IP address and it worked great .

Good coding Christopher

Thanks

John

,

Is this the full version 7.
Did you make any changes to the code ?
Is the User_ID field still an autonumber field in the Access database ?

I do not see how this could happen unless somehow the autonumber field setting for User_ID was changed in the database?

,

If you can would you do it for a price as a mod or will this be added to the new version.

,

Ohhh...

I was thinking it worked like this; A user goes to that page and logs in.. and from there they can then browse the site and do what they want..

So in order for it to work i need to edit a page say... members.aspx (i assume it needs to be an asp.net page) and in the header put that protect code and when a user accesses it, it will prompt them for their un and pw and then if correct will allow them to view the page... and likewise if they are still logged in will be able to use the page?

If that is how to works as i mentioned above thats great...

I understand the redirect principle...but say i have a log in box on the main page... you know like most pages have a user log in on the left hand side... i wanted to do that. But i cant obviously protect the main home page or else normal users will not be able to view it without logging in or registering

,

I think its great to share a mod.

I will have  few with the new album.

,

thanks!! the file took care of the extra slash. I also fixed the problem by modifying the permissions.

dazed

,

noted.

1.) this has been explored and because of the way groups works is not feasable. Because us this I wrote code to allow you to view and sort all users for any group on the actual groups page. You pick a groups and then click the "Show Users" button

2.) noted

, new version is still not finshed as of the end of the year... I am not going to release it until I feel it is ready.,


Timecard Entry: 3/25/2006 1:38:17 PM

to N. Lawrence, a user with a bad modem. a few general calls, CF/TICC, went over websites with Tom, Working with servers. Checking e-mail. Supporting customers. Meeting with clients., Cleaned, emonitor went red. Lowville 4201 went down. Recieved a few calls for it. Called Ken and he tried to bring back up but could not. He called back and said it was something to do with tel-net., sign ups. Busy, busy phone, probably because of bad weather, call back a customer that left voice mail., install dsu try to get bell to turn up circuit, lunch, Checked status of projects in work request system and sent the guys a reminder to update theirs, email, voicemail, exhibit, Working w/ TICC, helping Beth and Danielle do their initial testing w/ NeuStar on the computer., At home ..Working on the phone with Seth to check and change settings on my router, to lyng's and amf for pricing on folders, BAH at the Riveredge, Duties: answering phone, callbacks from voicemail. checking emails, taking sign ups, and cancellations, , Business Solutions Team meeting. 9:10 Square cam went down. Seth showed me how to proxy in to fix it., Arrived-printer on desk. Waiting for it to stop so I can install computer brought back from fair. Discussing give aways for Orlando that need to be ordered. Filled in time cards from Tuesday-Thursday. Checked mail., Reset idle modems in the Watertown 2360 pool. (microcoms), Phone - Albany, lunch, TI Comm Team Mtg, lunch, Tech Test & manual, teched calls - busy, Breesee chevrolet/go over propsal/redo need further categoires/fax proposal 10/6, Brasher Office to Clayton, Management meeting,

   Active Server Pages Rule The World
Contact Us  
All artwork, design & content contained in this site are Copyright © 1998 - 2022 PowerASP.com and Christopher J. Williams
Banner ads ,other site logos, etc are copyright of their respective companies.
STATS Unless otherwise noted - All Rights Reserved.

Active Server Pages help tutorial how to ASP Help ASP Tutorials ASP Programming ASP Code - ASP Free CJWSoft ASPProtect ASPBanner ASPClassifieds www.aspclassifieds.com, www.powerasp.com,www.cjwsoft.com,www.aspphotogallery.com,www.codewanker.com,www.aspprotect.com,www.aspbanner.com