J
Jamie Pollard
hello,
i have been scouring the groups for the best possible solution to this
problem, but can't seem to find my exact scenario, so hopefully someone
can get me back on the right path. my situation is the following:
i have a asp.net app that uses formsauthentication, and in the UserData
field we store the role value of what the user is (ie admin, user,
etc.). i want to also store the user id in this UserData field so i
have added that and separated it by a comma, so the value would look
something like "Admin,123". so on the Application_AuthenticateRequest
event in global.asax.vb i can easily split the values on the comma and
then have the roles which are used in:
HttpContext.Current.User = New GenericPrincipal(id, asRoles)
to verify whether they have access to certain directories or whatnot.
but within this GenericPrincipal there doesn't seem to be a place to
store this User Id value and have it readily available from each page.
i know you can do something like HttpContext.Current.User.Identity.Name
and that will give you the name value that you stored in the
formsauthentication ticket, but there still isn't a way to get the user
id. i tried setting a session variable in the
Application_AuthenticateRequest event to store the user id, but kept
getting an error; my thinking was that this way the authentication and
session would still be in sync because every time the user
authenticated, the session variable would be set (and i wouldn't be
using the session variable on pages that did not require
authentication). i have also seen where the id is appended to the Name
in the ticket, and then split out, but that doesn't seem very .net like
to me.
so i guess my question is what am i missing? most examples i have seen
just store the "roles" in the user data field, and not multiple types
of data like user id, first name, last name, etc.
thanks to any and all who respond,
jamie
i have been scouring the groups for the best possible solution to this
problem, but can't seem to find my exact scenario, so hopefully someone
can get me back on the right path. my situation is the following:
i have a asp.net app that uses formsauthentication, and in the UserData
field we store the role value of what the user is (ie admin, user,
etc.). i want to also store the user id in this UserData field so i
have added that and separated it by a comma, so the value would look
something like "Admin,123". so on the Application_AuthenticateRequest
event in global.asax.vb i can easily split the values on the comma and
then have the roles which are used in:
HttpContext.Current.User = New GenericPrincipal(id, asRoles)
to verify whether they have access to certain directories or whatnot.
but within this GenericPrincipal there doesn't seem to be a place to
store this User Id value and have it readily available from each page.
i know you can do something like HttpContext.Current.User.Identity.Name
and that will give you the name value that you stored in the
formsauthentication ticket, but there still isn't a way to get the user
id. i tried setting a session variable in the
Application_AuthenticateRequest event to store the user id, but kept
getting an error; my thinking was that this way the authentication and
session would still be in sync because every time the user
authenticated, the session variable would be set (and i wouldn't be
using the session variable on pages that did not require
authentication). i have also seen where the id is appended to the Name
in the ticket, and then split out, but that doesn't seem very .net like
to me.
so i guess my question is what am i missing? most examples i have seen
just store the "roles" in the user data field, and not multiple types
of data like user id, first name, last name, etc.
thanks to any and all who respond,
jamie