Cur*_*tis 6 .net asp.net security
我的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";
Run Code Online (Sandbox Code Playgroud)
列表框将包含用户所属的每个组的名称.如果我然后打电话User.IsInRole
,并传递任何这些组的名称,我总是得到一个假.
谁能告诉我我做错了什么?
谢谢
我们需要看看你的web.config.如何处理角色?角色管理器是否已启用?
编辑:
你需要使用这种格式:
User.IsInRole(@"DOMAINNAME\rolename")
Run Code Online (Sandbox Code Playgroud)
你要离开域名.如果仍然无效,请确保您已在web.config中设置了角色提供程序:
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
Run Code Online (Sandbox Code Playgroud)
此信息直接来自MSDN.查看"检查代码中的角色成员身份"部分.一切都在那里.