ユーザーは、表示するロールにユーザーがいない場合、コンテンツを非表示にします。ユーザーロールに基づいてコンテンツを動的に表示
現在、私はこのコンテンツを見ることができる2つの役割を持っています:グローバルと管理者。
ユーザーがこれらの役割のいずれかにいる場合は、コンテンツを見ることができるはずですが、問題の解決には問題があります。
// roles can be a single role ("global")
// or it can be multiple roles ("global,admin")
private bool CheckAllowed(string roles)
{
var user = HttpContext.Current.User;
var allowed = false;
if (roles.Contains(","))
{
string[] rolesArr = roles.Split(',');
foreach (string r in rolesArr)
{
allowed = (user.IsInRole(r)) ? true : false;
}
}
else
{
allowed = (user.IsInRole(r)) ? true : false;
}
return allowed;
}
私の問題は、ループである:ここでは
は、私がこれまで持っているものです。
ユーザーがrolesArr[0]
ではなくrolesArr[1]
である場合、ループはそれらをマークします「許されない」と、彼らはrolesArr[0]
のメンバーとして彼らが必要とするコンテンツが表示されません。
ユーザーがロール固有のコンテンツをより正確に表示できるかどうかを追跡するにはどうすればよいですか。
私は決してlinqを使ってこれを考えたことはありません...その美しい。私はそれをテストしたときにマークされますが、今のところあなたは+1を得る – Ortund