0

我刚刚在我的家庭控制器中实现了以下内容:

<Authorize(Roles:="Administrator")> _
<Authorize(Roles:="Manager")> _
<Authorize(Roles:="General")> _
Function Index() As ActionResult
    Return View()
End Function

但是,即使我已经登录到 /Home/Index 或者当它被 @RenderBody 调用时,它也会返回登录页面和以下 url:/Account/LogOn?ReturnUrl=%2f

我也没有更改全局文件中的任何路由。有什么建议么?

更新

后来我发现我添加的任何东西

<Authorize(Roles:="Administrator")> _ 

标签会不断向我询问密码?

我的 ViewStart 也是:

@Code

Dim r = Roles.GetRolesForUser()

If r.Contains("Administrator") Then
    Layout = "~/Views/Shared/_AdminLayout.vbhtml"
ElseIf r.Contains("Manager") Then
    Layout = "~/Views/Shared/_ManagerLayout.vbhtml"
ElseIf r.Contains("General") Then
    Layout = "~/Views/Shared/_GeneralLayout.vbhtml"
Else
    Layout = "~/Views/Shared/_NoUserLayout.vbhtml"
End If

End Code
4

1 回答 1

1

尝试将它们组合成一个,而不是 3 个单独的属性,例如:

<Authorize(Roles:="General,Manager,Administrator")>
于 2012-08-21T16:51:29.337 回答