我的ASP.NET应用程序正在使用windows身份验证。如果我运行以下代码:
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";列表框将包含用户所属的每个组的名称。如果我随后调用User.IsInRole,并传入其中任何一个组的名称,我总是得到一个false。
有人能告诉我我哪里做错了吗?
谢谢
发布于 2010-03-16 09:59:24
我们需要看看你的web.config。角色是如何处理的?角色管理器是否已启用?
编辑:
您需要使用以下格式:
User.IsInRole(@"DOMAINNAME\rolename")您正在删除域名。如果仍然不起作用,请确保已在web.config中设置了角色提供程序:
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>此信息直接来自MSDN。查看“检查代码中的角色成员资格”部分。都在这里了。
https://stackoverflow.com/questions/2451068
复制相似问题