Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Unpopulated UserInfo.Roles objectUnpopulated UserInfo.Roles object
Previous
 
Next
New Post
10/11/2006 9:48 PM
 

Hi

I am  building a user login module.  As part of the login procedure, I want to interrogate the roles that the user may be part of (using user.IsInRole("xx"))  My problem is that after calling ValidateUser, the Roles collection is not populated and infact upon test, is equal to Nothing. 

Any suggestions greatfully received.

Regards

Stuart McKenzie

 

 
New Post
10/12/2006 9:19 AM
 

I found that was true also - whether by design or defect, not sure.  So, before calling objUser.IsInRole ("xx") you will need to manually populate the Roles array (where objUser is your UserInfo object):

Dim rc As New DotNetNuke.Security.Roles.RoleController
objUser.Roles = rc.GetRolesByUser(objUser.UserID, PortalID)


Bill, WESNet Designs
Team Lead - DotNetNuke Gallery Module Project (Not Actively Being Developed)
Extensions Forge Projects . . .
Current: UserExport, ContentDeJour, ePrayer, DNN NewsTicker, By Invitation
Coming Soon: FRBO-For Rent By Owner
 
New Post
10/12/2006 9:25 AM
 

Try UserInfo.IsInRole("RoleName")

You get the controller for free now.  UserInfo.xxx is all you need.

 

 
New Post
10/12/2006 9:37 PM
 

Many thanks, this fixed it

Regards

Stuart McKenzie

imagemaker wrote

I found that was true also - whether by design or defect, not sure.  So, before calling objUser.IsInRole ("xx") you will need to manually populate the Roles array (where objUser is your UserInfo object):

Dim rc As New DotNetNuke.Security.Roles.RoleController
objUser.Roles = rc.GetRolesByUser(objUser.UserID, PortalID)

 
New Post
10/12/2006 10:01 PM
 
UserInfo.IsInRole("xx") will work in most cases, such as in the typical module development for the currently authenticated user as the UserInfo object is pulled from the current HttpContext with a properly populated Roles array.  It does not work in special cases such as in the OP's case of calling ValidateUser or my case in using DNN's UserLogin in a webservice.  The various GetUser(s).. methods and in particular the GetUserByName methods do not populate the Roles array of the returned UserInfo object causing the IsInRole method to always return false.  I've also run into this problem in module code that enumerates a subset of users to locate those in a particular role.

Bill, WESNet Designs
Team Lead - DotNetNuke Gallery Module Project (Not Actively Being Developed)
Extensions Forge Projects . . .
Current: UserExport, ContentDeJour, ePrayer, DNN NewsTicker, By Invitation
Coming Soon: FRBO-For Rent By Owner
 
Previous
 
Next
HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Unpopulated UserInfo.Roles objectUnpopulated UserInfo.Roles object


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out