User.IsInRole returning false

My ASP.NET app is using windows authentication. If I run the following code:

WindowsIdentity wi = (WindowsIdentity)User.Identity;

foreach (IdentityReference r in wi.Groups)
{
    ListBox1.Items.Add(r.Translate (typeof (NTAccount)).Value);
}

if (User.IsInRole ("Everyone"))
    Label1.Text = "Is in role";

The listbox will contain the name of every group the user belongs to. If I then call User.IsInRole, and pass in the name of any of those groups, I always get a false.

Can anyone tell me what I am doing wrong?

Thanks

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

We need to see your web.config. How are roles handled? Is the role manager even enabled?

EDIT:
You need to use this format:

User.IsInRole(@"DOMAINNAMErolename")

You are leaving off the domain name. If that still doesn’t work, make sure you’ve got your role provider set in web.config:

<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>

This information comes straight from MSDN. Look at the “Checking Role Membership in Code” section. It’s all there.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x