Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Security > Application_AuthenticateRequest

Reply
Thread Tools

Application_AuthenticateRequest

 
 
dave
Guest
Posts: n/a
 
      11-19-2003
I have code in the Global.asax that adds roles to a logged in user, which
all works fine.

But, i noticed that every request for a page thereafter runs this code each
time - which requires a call to the DB, which is costly.

I have tried to run this same piece of code from another page, instead of
global.asax, but it never seems to be able to assign the roles to that
current user?

Is there something different i have to do in order to make it work elsewhere
(ie, not within global.asax file).

Thanks in advance!


 
Reply With Quote
 
 
 
 
Cy Huckaba
Guest
Posts: n/a
 
      11-19-2003
You could leave it in the global.asax page and put a conditional check in the
logic...for example.

If roles aren't set
call db
set roles

else
do nothing

end if

We have implemented some code like that for custom form authentication tickets.

Hope that helps,

Cy Huckaba



"dave" <> wrote in message
news:#NU$...
> I have code in the Global.asax that adds roles to a logged in user, which
> all works fine.
>
> But, i noticed that every request for a page thereafter runs this code each
> time - which requires a call to the DB, which is costly.
>
> I have tried to run this same piece of code from another page, instead of
> global.asax, but it never seems to be able to assign the roles to that
> current user?
>
> Is there something different i have to do in order to make it work elsewhere
> (ie, not within global.asax file).
>
> Thanks in advance!
>
>



 
Reply With Quote
 
 
 
 
dave
Guest
Posts: n/a
 
      11-19-2003
Thanks

Did think about that one, but how do you check if a set of role(s) have been
set for a user?

Finally, do you know if it is the case that you cant set them anywhere else
apart from global.asax file. I have seen some samples that dont seem to be
in global, but those dont seem to work for me either???

Thanks again.



"Cy Huckaba" <> wrote in message
news:...
> You could leave it in the global.asax page and put a conditional check in

the
> logic...for example.
>
> If roles aren't set
> call db
> set roles
>
> else
> do nothing
>
> end if
>
> We have implemented some code like that for custom form authentication

tickets.
>
> Hope that helps,
>
> Cy Huckaba
>
>
>
> "dave" <> wrote in message
> news:#NU$...
> > I have code in the Global.asax that adds roles to a logged in user,

which
> > all works fine.
> >
> > But, i noticed that every request for a page thereafter runs this code

each
> > time - which requires a call to the DB, which is costly.
> >
> > I have tried to run this same piece of code from another page, instead

of
> > global.asax, but it never seems to be able to assign the roles to that
> > current user?
> >
> > Is there something different i have to do in order to make it work

elsewhere
> > (ie, not within global.asax file).
> >
> > Thanks in advance!
> >
> >

>
>



 
Reply With Quote
 
Guest
Posts: n/a
 
      11-20-2003
Do you want this to only happen the first time period that
the user ever logs in or do you want this to happen every
time the user starts a new session?

What about putting your code into the Session_Start in the
Global.asax (I don't know where you have it now)? And if
you only want to do it once period, then check first if it
has already been done before doing it... Either way, it
would only occur once per user per login so hopefully not
so bad...



>-----Original Message-----
>I have code in the Global.asax that adds roles to a

logged in user, which
>all works fine.
>
>But, i noticed that every request for a page thereafter

runs this code each
>time - which requires a call to the DB, which is costly.
>
>I have tried to run this same piece of code from another

page, instead of
>global.asax, but it never seems to be able to assign the

roles to that
>current user?
>
>Is there something different i have to do in order to

make it work elsewhere
>(ie, not within global.asax file).
>
>Thanks in advance!
>
>
>.
>

 
Reply With Quote
 
Cy Huckaba
Guest
Posts: n/a
 
      11-20-2003
Here is some code that we used to reset a cookie in the authenticateRequest
method. This was a workaround because 1.0 wouldn't persist cookies across
subwebs. We had to reset the cookie on every request if they already had one.

Dim hasClientCookie As Boolean = False

'client cookie
Try
Dim c As HttpCookie
c = Request.Cookies(ConfigurationSettings.AppSettings( "clientid"))
'if cookie is not there it will bomb out and skip the rest

c.Path = "/" & ConfigurationSettings.AppSettings("clientid")
c.Expires = Now.AddDays(90)
Response.Cookies.Add(c)

FormsAuthentication.SetAuthCookie(User.Identity.Na me, True)

hasClientCookie = True

'Response.Write(" : client cookie")

Catch
'do nothing
End Try


You can see we had access to the User object. I belive you can use that to
create an IPrincipal object and check roles. I haven't done this specifically
here so I don't know for sure.

The other thing is that I did try to use this same functionality outside of the
global.asax file with no luck as well. It seemed I always had trouble getting a
reference to the current user or the current http context...it was always
something.




"dave" <> wrote in message
news:...
> Thanks
>
> Did think about that one, but how do you check if a set of role(s) have been
> set for a user?
>
> Finally, do you know if it is the case that you cant set them anywhere else
> apart from global.asax file. I have seen some samples that dont seem to be
> in global, but those dont seem to work for me either???
>
> Thanks again.
>
>
>
> "Cy Huckaba" <> wrote in message
> news:...
> > You could leave it in the global.asax page and put a conditional check in

> the
> > logic...for example.
> >
> > If roles aren't set
> > call db
> > set roles
> >
> > else
> > do nothing
> >
> > end if
> >
> > We have implemented some code like that for custom form authentication

> tickets.
> >
> > Hope that helps,
> >
> > Cy Huckaba
> >
> >
> >
> > "dave" <> wrote in message
> > news:#NU$...
> > > I have code in the Global.asax that adds roles to a logged in user,

> which
> > > all works fine.
> > >
> > > But, i noticed that every request for a page thereafter runs this code

> each
> > > time - which requires a call to the DB, which is costly.
> > >
> > > I have tried to run this same piece of code from another page, instead

> of
> > > global.asax, but it never seems to be able to assign the roles to that
> > > current user?
> > >
> > > Is there something different i have to do in order to make it work

> elsewhere
> > > (ie, not within global.asax file).
> > >
> > > Thanks in advance!
> > >
> > >

> >
> >

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
When does Application_AuthenticateRequest fires? =?Utf-8?B?dGhlIGZyaWVuZGx5IGRpc3BsYXkgbmFtZQ==?= ASP .Net 1 12-22-2005 03:52 PM
Application_AuthenticateRequest Problem Alessio Brizi ASP .Net 0 07-08-2005 03:43 PM
Application_AuthenticateRequest cannot read Session variable =?Utf-8?B?ZGFubWFuMjI2?= ASP .Net 4 04-18-2005 06:06 PM
Application_AuthenticateRequest Nugs ASP .Net 0 04-17-2004 07:55 PM
Form-based security and Application_AuthenticateRequest - help?! Mike Kingscott ASP .Net 0 06-30-2003 03:32 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57