Currently, I am storing information about the currently logged on user
in Session variables that are stored in SQL. However, I am using
role-based security, so I am storing custom roles in a GenericPrincipal
object that I attached to Context.User. My question is this:
Can I create a new class, ExtendedPrincipal for instance, and simply
inherit System.Security.Principal and store all of the information
currently stored in Session variables in this new object? Is this
responsible/efficient/appropriate?
Thanks in advance!
Jason 15 2444
Since the Session is specific to the User, there is no need to add this
level of complexity.
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
"Jason" <ja*************@hotmail.com> wrote in message
news:11*********************@l41g2000cwc.googlegro ups.com... Currently, I am storing information about the currently logged on user in Session variables that are stored in SQL. However, I am using role-based security, so I am storing custom roles in a GenericPrincipal object that I attached to Context.User. My question is this:
Can I create a new class, ExtendedPrincipal for instance, and simply inherit System.Security.Principal and store all of the information currently stored in Session variables in this new object? Is this responsible/efficient/appropriate?
Thanks in advance! Jason
Thanks. I was under the impression that using session variables was
yesterdays technology and that this information was handled better by a
new .NET way. This is good though. Now I don't have to go back and
make alot of changes.
Something you could do though would be to create a class with shared numbers
that exposes these session variables as properties.
This way you'll get strong typing and intellisense on those values plus you
don't need to change at once as under the hood there are still stored as
session variables.
Patrice
--
"Jason" <ja*************@hotmail.com> a écrit dans le message de
news:11*********************@o13g2000cwo.googlegro ups.com... Thanks. I was under the impression that using session variables was yesterdays technology and that this information was handled better by a new .NET way. This is good though. Now I don't have to go back and make alot of changes.
Never thought about that! But I am unfamiliar with "shared numbers" or
how to get a list of "choices" to be displayed when you are trying to
set a property of a class.
What language are you using ? The keyword is Shared in VB.NET and static in
C#.
It allows to have a member that is the same for all objects of a class.
Under the hood it uses the user session to store the value.
Having a list is done using an Enumeration (Enum in both languages if I
remember)...
Actually I didn't thought about that either. Saw this suggestion once in
this group...
Patrice
--
"Jason" <ja*************@hotmail.com> a écrit dans le message de
news:11*********************@l41g2000cwc.googlegro ups.com... Never thought about that! But I am unfamiliar with "shared numbers" or how to get a list of "choices" to be displayed when you are trying to set a property of a class.
> Under the hood it uses the user session to store the value.
Static objects are stored in the application heap, not Session.
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
"Patrice" <no****@nowhere.com> wrote in message
news:ej**************@TK2MSFTNGP10.phx.gbl... What language are you using ? The keyword is Shared in VB.NET and static in C#. It allows to have a member that is the same for all objects of a class. Under the hood it uses the user session to store the value.
Having a list is done using an Enumeration (Enum in both languages if I remember)...
Actually I didn't thought about that either. Saw this suggestion once in this group...
Patrice --
"Jason" <ja*************@hotmail.com> a écrit dans le message de news:11*********************@l41g2000cwc.googlegro ups.com... Never thought about that! But I am unfamiliar with "shared numbers" or how to get a list of "choices" to be displayed when you are trying to set a property of a class.
"Patrice" <no****@nowhere.com> wrote in message
news:u7**************@TK2MSFTNGP10.phx.gbl... don't need to change at once as under the hood there are still stored as session variables.
No they aren't! They're stored as application variables.
> No they aren't! They're stored as application variables.
Afraid not. Static objects are stored in the application heap. Always have
been. Always will be. That is, after all, the definition of "static."
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
"Mark Rae" <ma**@mark-N-O-S-P-A-M-rae.co.uk> wrote in message
news:uB**************@TK2MSFTNGP14.phx.gbl... "Patrice" <no****@nowhere.com> wrote in message news:u7**************@TK2MSFTNGP10.phx.gbl...
don't need to change at once as under the hood there are still stored as session variables.
No they aren't! They're stored as application variables.
Kevin ...
Technically, you are correct ... if these static members are merely
accessors for private variables. For example:
Public Class MySessionVars
Private Shared _myInt As Integer
Public Shared Property MyInt() As Integer
Get
Return _myInt
End Get
Set(ByVal Value As Integer)
_myInt = Value
End Set
End Property
End ClassThis would store the variables in the heap *and* have the same
values for every user! Not desirable in this situation.
Doing this, however, would be different:
Public Class MySessionVars
Public Shared Property MyInt() As Integer
Get
Return CInt(HttpContext.Current.Session("MyInt"))
End Get
Set(ByVal Value As Integer)
HttpContext.Current.Session("MyInt") = Value
End Set
End Property
End Class
In this case, the static property is merely a wrapper around the current
HttpContext's Session object. Note that this will *crash and burn* if not in
an ASP.NET environment! It is the second method that I think Patrice was
referring to ... and I would agree with Patrice on this practice. It's a
nice layer to abstract the details of the Session, providing flexibility on
storage location of the information, providing intellisense and strong
typing. Many Good Things(tm).
Jason ... you'd add the above class (or something like it) to your project
as a class file in the web solution. From there, you would refer to it like
so:
Dim myInt as Integer = MySessionVars.MyInt
You do not have to create an instance of the class to access static/Shared
members of the type.
"Kevin Spencer" wrote: Under the hood it uses the user session to store the value.
Static objects are stored in the application heap, not Session.
-- HTH,
Kevin Spencer Microsoft MVP ..Net Developer Neither a follower nor a lender be.
"Patrice" <no****@nowhere.com> wrote in message news:ej**************@TK2MSFTNGP10.phx.gbl... What language are you using ? The keyword is Shared in VB.NET and static in C#. It allows to have a member that is the same for all objects of a class. Under the hood it uses the user session to store the value.
Having a list is done using an Enumeration (Enum in both languages if I remember)...
Actually I didn't thought about that either. Saw this suggestion once in this group...
Patrice --
"Jason" <ja*************@hotmail.com> a écrit dans le message de news:11*********************@l41g2000cwc.googlegro ups.com... Never thought about that! But I am unfamiliar with "shared numbers" or how to get a list of "choices" to be displayed when you are trying to set a property of a class.
Thanks to everyone for your input. My project is in C#, but the above
code is easily translatable. Once of these days, when I have nothing
better to do, I'm going to write a VB.NET -> C# -> VB.NET translator.
Then I'll be rich (provided someone else hasn't already done it).
"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message
news:u0**************@TK2MSFTNGP09.phx.gbl... No they aren't! They're stored as application variables.
Afraid not. Static objects are stored in the application heap. Always have been. Always will be. That is, after all, the definition of "static."
Isn't that what I said?
Around here, static is what you get when
people post unresearched "answers" to questions.
No signal. Just noisy static.
;-)
Juan T. Llibre
ASP.NET MVP http://asp.net.do/foros/
Foros de ASP.NET en Español
=====================
"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message
news:u0**************@TK2MSFTNGP09.phx.gbl... No they aren't! They're stored as application variables.
Afraid not. Static objects are stored in the application heap. Always have been. Always will be. That is, after all, the definition of "static."
-- HTH,
Kevin Spencer Microsoft MVP .Net Developer Neither a follower nor a lender be.
"Mark Rae" <ma**@mark-N-O-S-P-A-M-rae.co.uk> wrote in message news:uB**************@TK2MSFTNGP14.phx.gbl... "Patrice" <no****@nowhere.com> wrote in message news:u7**************@TK2MSFTNGP10.phx.gbl...
don't need to change at once as under the hood there are still stored as session variables.
No they aren't! They're stored as application variables.
Hi J,
Technically I AM correct. A Property is a wrapper for 2 (up to) methods (get
and set). If the Property is static, the methods are static, and stored in
the heap. A static method can work with Session and Application via the
HttpContext. However, the variables that it works with are NOT static.
Therefore, a static property is NOT stored in Session or Application, but in
the heap.
I wasn't disagreeing with Patrice's advice, simply pointing out a technical
error in her explanation of it.
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
"J Sawyer [Microsoft]" <JS**************@discussions.microsoft.com> wrote in
message news:3B**********************************@microsof t.com... Kevin ... Technically, you are correct ... if these static members are merely accessors for private variables. For example: Public Class MySessionVars Private Shared _myInt As Integer Public Shared Property MyInt() As Integer Get Return _myInt End Get Set(ByVal Value As Integer) _myInt = Value End Set End Property End ClassThis would store the variables in the heap *and* have the same values for every user! Not desirable in this situation. Doing this, however, would be different: Public Class MySessionVars Public Shared Property MyInt() As Integer Get Return CInt(HttpContext.Current.Session("MyInt")) End Get Set(ByVal Value As Integer) HttpContext.Current.Session("MyInt") = Value End Set End Property End Class In this case, the static property is merely a wrapper around the current HttpContext's Session object. Note that this will *crash and burn* if not in an ASP.NET environment! It is the second method that I think Patrice was referring to ... and I would agree with Patrice on this practice. It's a nice layer to abstract the details of the Session, providing flexibility on storage location of the information, providing intellisense and strong typing. Many Good Things(tm). Jason ... you'd add the above class (or something like it) to your project as a class file in the web solution. From there, you would refer to it like so: Dim myInt as Integer = MySessionVars.MyInt
You do not have to create an instance of the class to access static/Shared members of the type.
"Kevin Spencer" wrote:
> Under the hood it uses the user session to store the value.
Static objects are stored in the application heap, not Session.
-- HTH,
Kevin Spencer Microsoft MVP ..Net Developer Neither a follower nor a lender be.
"Patrice" <no****@nowhere.com> wrote in message news:ej**************@TK2MSFTNGP10.phx.gbl... > What language are you using ? The keyword is Shared in VB.NET and > static > in > C#. > It allows to have a member that is the same for all objects of a class. > Under the hood it uses the user session to store the value. > > Having a list is done using an Enumeration (Enum in both languages if I > remember)... > > Actually I didn't thought about that either. Saw this suggestion once > in > this group... > > Patrice > > > > -- > > "Jason" <ja*************@hotmail.com> a écrit dans le message de > news:11*********************@l41g2000cwc.googlegro ups.com... >> Never thought about that! But I am unfamiliar with "shared numbers" >> or >> how to get a list of "choices" to be displayed when you are trying to >> set a property of a class. >> > >
> Isn't that what I said?
No. It is not. Application variables are stored in an instantiated
Collection object in Application memory. Static objects are stored in the
heap. You do know what the heap is, don't you?
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
"Mark Rae" <ma**@mark-N-O-S-P-A-M-rae.co.uk> wrote in message
news:ep*************@TK2MSFTNGP15.phx.gbl... "Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message news:u0**************@TK2MSFTNGP09.phx.gbl...
No they aren't! They're stored as application variables.
Afraid not. Static objects are stored in the application heap. Always have been. Always will be. That is, after all, the definition of "static."
Isn't that what I said?
You are both right !!
The "it" wasn't referring to static members in general but to the session
wrapper class that uses static properties and that stores under the hood the
value in the user session object as described by J Sawyer but I agree that I
was far from being clear...
Terminology is really sometimes difficult Kevin, properties are never
stored, they are just code that eventually stores something where you want
(not necessarily on the heap) ;-)
Patrice
--
"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> a écrit dans le message
de news:uY**************@TK2MSFTNGP14.phx.gbl... Hi J,
Technically I AM correct. A Property is a wrapper for 2 (up to) methods
(get and set). If the Property is static, the methods are static, and stored in the heap. A static method can work with Session and Application via the HttpContext. However, the variables that it works with are NOT static. Therefore, a static property is NOT stored in Session or Application, but
in the heap.
I wasn't disagreeing with Patrice's advice, simply pointing out a
technical error in her explanation of it.
-- HTH,
Kevin Spencer Microsoft MVP .Net Developer Neither a follower nor a lender be.
"J Sawyer [Microsoft]" <JS**************@discussions.microsoft.com> wrote
in message news:3B**********************************@microsof t.com... Kevin ... Technically, you are correct ... if these static members are merely accessors for private variables. For example: Public Class MySessionVars Private Shared _myInt As Integer Public Shared Property MyInt() As Integer Get Return _myInt End Get Set(ByVal Value As Integer) _myInt = Value End Set End Property End ClassThis would store the variables in the heap *and* have the same values for every user! Not desirable in this situation. Doing this, however, would be different: Public Class MySessionVars Public Shared Property MyInt() As Integer Get Return CInt(HttpContext.Current.Session("MyInt")) End Get Set(ByVal Value As Integer) HttpContext.Current.Session("MyInt") = Value End Set End Property End Class In this case, the static property is merely a wrapper around the current HttpContext's Session object. Note that this will *crash and burn* if
not in an ASP.NET environment! It is the second method that I think Patrice
was referring to ... and I would agree with Patrice on this practice. It's
a nice layer to abstract the details of the Session, providing flexibility on storage location of the information, providing intellisense and strong typing. Many Good Things(tm). Jason ... you'd add the above class (or something like it) to your
project as a class file in the web solution. From there, you would refer to it like so: Dim myInt as Integer = MySessionVars.MyInt
You do not have to create an instance of the class to access
static/Shared members of the type.
"Kevin Spencer" wrote:
> Under the hood it uses the user session to store the value.
Static objects are stored in the application heap, not Session.
-- HTH,
Kevin Spencer Microsoft MVP ..Net Developer Neither a follower nor a lender be.
"Patrice" <no****@nowhere.com> wrote in message news:ej**************@TK2MSFTNGP10.phx.gbl... > What language are you using ? The keyword is Shared in VB.NET and > static > in > C#. > It allows to have a member that is the same for all objects of a
class. > Under the hood it uses the user session to store the value. > > Having a list is done using an Enumeration (Enum in both languages if
I > remember)... > > Actually I didn't thought about that either. Saw this suggestion once > in > this group... > > Patrice > > > > -- > > "Jason" <ja*************@hotmail.com> a écrit dans le message de > news:11*********************@l41g2000cwc.googlegro ups.com... >> Never thought about that! But I am unfamiliar with "shared numbers" >> or >> how to get a list of "choices" to be displayed when you are trying
to >> set a property of a class. >> > >
This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Paul Yanzick |
last post by:
Hello,
I am trying to develop a book tracking application for my capstone in
school, and am running into a problem.
The application is an ASP.Net application written in C#. The first page you...
|
by: Anthony Williams |
last post by:
Hi gang,
This one looks like a bug :o(
As you may or may not know, setting session management in web.config to use
cookieless sessions causes the ASP.NET runtime to munge a session ID into...
|
by: Leon |
last post by:
I know that I can access session state on an asp.net page
using Page objects, but how do I access store data in sessionstate from the
middle tiers?
|
by: Joe Abou Jaoude |
last post by:
hi,
I have a web app with forms authentication and a timeout session of 20
mins for security reasons. I recently added a feature that allows users
(if they want to) to automatically log in...
|
by: Stuart |
last post by:
Hi there
I am using several processes within an .asp application that store variables
in to session - typically:
Session("UniqueName") = Value
I am having a hell of a time overwriting the...
|
by: jakk |
last post by:
Iam storing the session state in SQL Server. The Session gets stored in
the SQL Server temp tables ( I can see some values in the two tables),
but the session doesnt seem to timeout.
We have a...
|
by: Mikael Östberg |
last post by:
Hello all!
I have this login function which doesn't work really well.
I tried to do extend the built-in functionality in order to store things
such as userName and email address in Session.
...
|
by: Lee Moore |
last post by:
I have some user controls defined that represent a common header and footer
for a particular site. the footer contains links with querystring parameters
based on session variables. The problem is,...
|
by: Joel Reinford |
last post by:
I am trying to build custom membership/role providers, inheriting from the
base membership/role providers because I have an existing database with user
authentication and roles. The membership part...
|
by: Faith0G |
last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
|
by: ryjfgjl |
last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
|
by: taylorcarr |
last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
| |