0

特定のロールに制限したいインデックスがあるMVC Webサイトがあります(今のところ「MyRole」と呼んでいます)。私は最初にこれをしました:

[Authorize(Roles="MyRole")]
public ActionResult Index()
{
    return View();
}

ロールをデータベースに手動で追加し、適切な ApplicationId を使用してロールに単純に挿入し、その新しいロールを自分のユーザーと共に UsersInRoles テーブルに追加しました。かなり簡単に思えますが、上記の Authorize は失敗します。だから私は代わりにこれを試しました:

[Authorize]
public ActionResult Index()
{
    if (!User.IsInRole("MyRole"))
        return Redirect("Error");
    return View();
}

Authorize は機能しますが (ログインさせます)、User.IsInRole("MyRole") は false を返します。私は一生、理由を理解することはできません。ユーザーはデータベース内にあり、ユーザーはアプリケーションに割り当てられ、ロールはそのアプリケーションのデータベース内にあり、ユーザーはそのロールに割り当てられます。ユーザーがロールに割り当てられるようにするには、他に何をする必要がありますか?

-シュナー

4

1 に答える 1