Ask a Question related to ASP.NET Security, Design and Development.
-
Bob Erwin #1
User.IsInRole not redirecting
Hi there,
I have been reading up on Authorization and role based security for a couple
of days now, and am trying to implement this in my applications.
I'm having a problem with my roles being reconized by using the
user.isinrole("test") on the redirected page after the Login.
for instance, here is my code after I log into the page:
Dim test() As String = {"OEM", "test"}
HttpContext.Current.User = New GenericPrincipal(User.Identity, test)
FormsAuthentication.RedirectFromLoginPage(txtUsern ame.Text, False)
At this point if I break at the formsAuthentication.....I watch the
User.isinrole("test") it shows up true, however, when I get redirected to
the webform1.aspx page and also watch user.isinrole("test") then it is
false.
I'm really confused on what I need to do...I've tried the
Threading.currentprincipal = new genericPrincipal(User.Identity, test) and
that didn't work as well. The User.identity.isauthenticated does come over
and also the User.identity.name comes over, it is just the
user.isinrole("test") that does not come over.
Any thoughts?
You help is greatly appreciated...
Thanks,
Bob
Bob Erwin Guest
-
User.IsInRole is always FALSE
Hi, I have the following problem... Pre-requisites: Installation of an Asp.net webservice on a IIS5 server (win2k). Anonymous access is not... -
HttpContext.Current.User.IsInRole
Hi, I have a problem when I am using the HttpContext.Current.User.IsInRole... This is my code: if (HttpContext.Current.User.IsInRole("Admin... -
Custom implementation for User.IsInRole??
I have an app where im using FormsAuthenticaton, and doing my own authentication against a users table in my db. I have no problem actually getting... -
isInRole doesn't work for one user, but works for everyone else
I have an ASP.NET/C# application in which I verify that the current user is a member of a list of roles before giving them access to particular... -
ASP.NET Context.User.IsInRole XP Problem
Hi guys I am having a problem with the following line of code on Windows XP Pro. The variable userRole is a string depicting my role on the local... -
Paul Glavich #2
Re: User.IsInRole not redirecting
You need to associate your principal with associated roles for each request
that comes in. Once you have authenticated and redirected, typically all
that will be passed along (automatically that is) is that the user has been
authenticated. A common way of carrying the roles across multiple requests
is, once authenticated, store the roles in the cookie that is issued to the
client. Each request that comes in (via the Application_AuthenticateRequest
event in Global.asax), you extract the roles, create your generic principal
with the extracted roles, and associate that generic principal wih the
current context . When doing this, you should also remember to encrypt the
cookie.
--
- Paul Glavich
"Bob Erwin" <berwin@msbob.com> wrote in message
news:#9cbNiGsDHA.2828@tk2msftngp13.phx.gbl...couple> Hi there,
>
> I have been reading up on Authorization and role based security for aover> of days now, and am trying to implement this in my applications.
>
> I'm having a problem with my roles being reconized by using the
> user.isinrole("test") on the redirected page after the Login.
>
> for instance, here is my code after I log into the page:
>
>
> Dim test() As String = {"OEM", "test"}
> HttpContext.Current.User = New GenericPrincipal(User.Identity, test)
> FormsAuthentication.RedirectFromLoginPage(txtUsern ame.Text, False)
>
> At this point if I break at the formsAuthentication.....I watch the
> User.isinrole("test") it shows up true, however, when I get redirected to
> the webform1.aspx page and also watch user.isinrole("test") then it is
> false.
>
> I'm really confused on what I need to do...I've tried the
> Threading.currentprincipal = new genericPrincipal(User.Identity, test) and
> that didn't work as well. The User.identity.isauthenticated does come> and also the User.identity.name comes over, it is just the
> user.isinrole("test") that does not come over.
>
> Any thoughts?
>
> You help is greatly appreciated...
>
> Thanks,
> Bob
>
>
Paul Glavich Guest
-
Bob Erwin #3
Re: User.IsInRole not redirecting
Hey Paul,
Thanks for the response. I still have a question with this though. Yes you
are correct that the authenticated user info is passed along automatically
for me. So are you saying that Generic Principals assocated with that
identity are *not* passed? Does that mean that I need to create a new
generic principal and populate it each time I re-direct to a new page?
Thanks,
Bob
"Paul Glavich" <glav@aspalliance.com-NOSPAM> wrote in message
news:ugz5l2LsDHA.2060@TK2MSFTNGP10.phx.gbl...request> You need to associate your principal with associated roles for eachbeen> that comes in. Once you have authenticated and redirected, typically all
> that will be passed along (automatically that is) is that the user hasthe> authenticated. A common way of carrying the roles across multiple requests
> is, once authenticated, store the roles in the cookie that is issued toApplication_AuthenticateRequest> client. Each request that comes in (via theprincipal> event in Global.asax), you extract the roles, create your genericto> with the extracted roles, and associate that generic principal wih the
> current context . When doing this, you should also remember to encrypt the
> cookie.
>
> --
> - Paul Glavich
>
>
> "Bob Erwin" <berwin@msbob.com> wrote in message
> news:#9cbNiGsDHA.2828@tk2msftngp13.phx.gbl...> couple> > Hi there,
> >
> > I have been reading up on Authorization and role based security for a> > of days now, and am trying to implement this in my applications.
> >
> > I'm having a problem with my roles being reconized by using the
> > user.isinrole("test") on the redirected page after the Login.
> >
> > for instance, here is my code after I log into the page:
> >
> >
> > Dim test() As String = {"OEM", "test"}
> > HttpContext.Current.User = New GenericPrincipal(User.Identity, test)
> > FormsAuthentication.RedirectFromLoginPage(txtUsern ame.Text, False)
> >
> > At this point if I break at the formsAuthentication.....I watch the
> > User.isinrole("test") it shows up true, however, when I get redirectedand> > the webform1.aspx page and also watch user.isinrole("test") then it is
> > false.
> >
> > I'm really confused on what I need to do...I've tried the
> > Threading.currentprincipal = new genericPrincipal(User.Identity, test)> over> > that didn't work as well. The User.identity.isauthenticated does come>> > and also the User.identity.name comes over, it is just the
> > user.isinrole("test") that does not come over.
> >
> > Any thoughts?
> >
> > You help is greatly appreciated...
> >
> > Thanks,
> > Bob
> >
> >
>
Bob Erwin Guest
-
Bob Erwin #4
Re: User.IsInRole not redirecting
Hey,
NeverMind on my last post. I was able to get this working based on the
information you had provided.
Just for those who are trying to do the same thing, I referenced:
[url]http://www.codeproject.com/aspnet/formsroleauth.asp[/url] as well as other Deja
Articles.
And here is my code below:
'in my login button code
.........
Dim AuthTicket = New FormsAuthenticationTicket(1, oUserInfo.EmailAddress,
DateTime.Now, DateTime.Now.AddMinutes(30), False, oUserInfo.UserRoles,
FormsAuthentication.FormsCookiePath)
Dim hash As String = FormsAuthentication.Encrypt(AuthTicket)
Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName, hash)
Response.Cookies.Add(cookie)
Response.Redirect(FormsAuthentication.GetRedirectU rl(oUserInfo.EmailAddress,
False), False)
end sub
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As
EventArgs)
' Fires upon attempting to authenticate the use
If Request.IsAuthenticated Then
If User.Identity.IsAuthenticated Then
Dim id As FormsIdentity
id = HttpContext.Current.User.Identity
Dim AuthTicket As FormsAuthenticationTicket
AuthTicket = id.Ticket
Dim roles As String = AuthTicket.UserData
Dim RoleArray As String()
RoleArray = Split(roles, "|")
HttpContext.Current.User = New
GenericPrincipal(User.Identity, RoleArray)
End If
End If
End Sub
Thanks for your help...
Bob
"Paul Glavich" <glav@aspalliance.com-NOSPAM> wrote in message
news:ugz5l2LsDHA.2060@TK2MSFTNGP10.phx.gbl...request> You need to associate your principal with associated roles for eachbeen> that comes in. Once you have authenticated and redirected, typically all
> that will be passed along (automatically that is) is that the user hasthe> authenticated. A common way of carrying the roles across multiple requests
> is, once authenticated, store the roles in the cookie that is issued toApplication_AuthenticateRequest> client. Each request that comes in (via theprincipal> event in Global.asax), you extract the roles, create your genericto> with the extracted roles, and associate that generic principal wih the
> current context . When doing this, you should also remember to encrypt the
> cookie.
>
> --
> - Paul Glavich
>
>
> "Bob Erwin" <berwin@msbob.com> wrote in message
> news:#9cbNiGsDHA.2828@tk2msftngp13.phx.gbl...> couple> > Hi there,
> >
> > I have been reading up on Authorization and role based security for a> > of days now, and am trying to implement this in my applications.
> >
> > I'm having a problem with my roles being reconized by using the
> > user.isinrole("test") on the redirected page after the Login.
> >
> > for instance, here is my code after I log into the page:
> >
> >
> > Dim test() As String = {"OEM", "test"}
> > HttpContext.Current.User = New GenericPrincipal(User.Identity, test)
> > FormsAuthentication.RedirectFromLoginPage(txtUsern ame.Text, False)
> >
> > At this point if I break at the formsAuthentication.....I watch the
> > User.isinrole("test") it shows up true, however, when I get redirectedand> > the webform1.aspx page and also watch user.isinrole("test") then it is
> > false.
> >
> > I'm really confused on what I need to do...I've tried the
> > Threading.currentprincipal = new genericPrincipal(User.Identity, test)> over> > that didn't work as well. The User.identity.isauthenticated does come>> > and also the User.identity.name comes over, it is just the
> > user.isinrole("test") that does not come over.
> >
> > Any thoughts?
> >
> > You help is greatly appreciated...
> >
> > Thanks,
> > Bob
> >
> >
>
Bob Erwin Guest



Reply With Quote

