asp.net custom Authentication

Hi I have build a class to create a user, block user and so on. That all works well. The reason i went down this route is we have over 10,000 customers and want to email them all with generated passwords. So we will set up all existing customers for our new site.

How do I set the user as Authenticated = true and username.
I was using the asp.net way and all was working well untill I wanted generate users on our internal system.

So all I really want to do is set the username, userid, role and then mark the user as Authenticated when my class returns that the login in was a match.

This way i can use the code asp uses to log them out but can do what I need.

The best option is to create a Custom Principal class which inherits from a Generic Principal. You can then set any additional properties on this and use the CustomPrincipal and CustomIdentity objects to authenticate the user using forms authentication:

Public Class CustomPrincipal Inherits System.Security.Principal.GenericPrincipal Private _eyeColor As String Public ReadOnly Property EyeColor As String Get Return _eyeColor End Get End Property Public Sub New(id As System.Security.Principal.Identity, roles As String(), eyeColor As String) MyBase.New(id, roles) _eyeColor = eyeColor End SubEnd Class

on my custom form i dont have e.Authenticated = True how can i do this.
I would like to be able to set the membership but if not some how set Authenticated = True as i think it will work quite well then i can store the userid in a sesion varible.

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

I was using the asp.net way and all was working well untill I wanted generate users on our internal system.

Wondering how you created users, if not the asp .net way?
If you open the asp .net database do the users you created exist in the table aspnet_users and do the userids' exist in the table aspnet_membership?

Hi, no have created a new table very similar to asp.net but membership is not needed. So when someone logs on is gets all their details returned in a class. like

Public Class UserDetails Public Property UserID As Guid Public Property UserName As String Public Property Email As String Public Property DOB As Date Public Property Tel As String Public Property Mobile As String Public Property LastActivityDate As Date Public Property LastLoginDate As Date Public Property TimeTaken As TimeSpan Public Property HadErrors As Boolean = False Public Property ErrorMessage As String = "" End Class

Was goint to put this in a session vaible but did not know if that was the best way. Thought i might be able to manually set HttpContext.Current.User = userid or the name and email. Plus my form does not have e As AuthenticateEventArgs so cannot set e.Authenticated = True

The fact that you have to store user details somewhere has no direct relation with the authentication, you handle these separately.

For the authentication use
- for declaring user as authenticated
FormsAuthentication.RedirectFromLoginPage or
FormsAuthentication.SetAuthCookie

- for checking authentication
Request.IsAuthenticated

- for ending authentication
FormsAuthentication.SignOut

For these you only need an unique user identifier (username) to pass it as parameter.

To hold on more data about user use a class or variables that you can store in session (recommended) or in viewstate. You have to synchronize storage of this data with authentication process:
- when you use SetAuthCookie/RedirectFromLoginPage you also setup the user values in the session
- when you use SignOut you also call Session.Abandon() to delete the user details from session.

You use e.Authenticated if you use predefined login control from .NET instead of building your own form. Also storing user details in session is the correct way to do it.

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…

Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…

Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…