Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在'中扮演多个角色;User.IsInRole';_C#_Asp.net_Razor_Roles - Fatal编程技术网

C# 在'中扮演多个角色;User.IsInRole';

C# 在'中扮演多个角色;User.IsInRole';,c#,asp.net,razor,roles,C#,Asp.net,Razor,Roles,我的页面上有3个角色,所以我想获得两个角色的链接 我试试这样的 @if(User.IsInRole("Admin,User")) { //my code } 还是这个 @if (User.IsInRole("Admin") && User.IsInRole("User")) { //my code } 没有人工作,我唯一能工作的人是: @if (User.IsInRole("Admin") 但这最后一个只是一个角色,我怎么能做到我想要的呢 没有人工作,我唯一能工作

我的页面上有3个角色,所以我想获得两个角色的链接

我试试这样的

@if(User.IsInRole("Admin,User")) 
{
 //my code
}
还是这个

@if (User.IsInRole("Admin") && User.IsInRole("User"))

{
 //my code
}
没有人工作,我唯一能工作的人是:

 @if (User.IsInRole("Admin")
但这最后一个只是一个角色,我怎么能做到我想要的呢

没有人工作,我唯一能工作的人是:

 @if (User.IsInRole("Admin")

这是合理的,如果你考虑方法>代码> ISIMORION/CODE >。< /P> 获取一个值,该值指示当前登录的用户是否处于 指定的角色。API仅用于在 ASP.NET请求线程的上下文,以及在该批准的用例中 它是线程安全的

也就是说,用户可能具有Admin角色(因此
UserIsInRole(“Admin”)
返回true),但可能不具有user角色(因此
UserIsInRole(“user”)
返回false)。因此
User.IsInRole(“Admin”)和&User.IsInRole(“User”)
的计算结果将为
false

您可能需要的是:

// If the user's role is either admin or user then do something
@if (User.IsInRole("Admin") || User.IsInRole("User"))
{
    //my code
}

你不工作是什么意思
@if(User.IsInRole(“Admin”)和&User.IsInRole(“User”)
在我看来非常好(假设逗号分隔的角色不是检查角色的有效方法)。因此我尝试@if(User.IsInRole(“Admin”)| User.IsInRole(“User”)@Joan我很高兴我提供了帮助:)“一个用户不能同时扮演两个角色”-请澄清这种情况是在哪个身份验证框架中发生的(在这种情况下,它看起来像WebMatrix SimpleRoleProvider,如果这是真的话)。许多(如果不是所有的话)角色提供程序都支持一个用户同时扮演多个角色。例如,还有方法
GetRolesForUser()
。我知道这已经有几年历史了,但如果其他人偶然发现这一点,“那就是说一个用户不能同时扮演两个角色。”这是完全错误的说法。默认的EntityFramework用户对象上甚至有一个
ICollection
,@nurdyguy感谢您注意到这一点!我只是做了相应的修改。