User.IsInRole奇怪的行为

时间:2014-10-07 21:33:44

标签: c# asp.net asp.net-mvc asp.net-mvc-4

User.IsInRole函数存在问题。

这里有一些截图和代码:

我的登录表单包含return url(controlpanel) My login form with return url (controlpanel)

我的ControlpanelController代码包含授权和我的问题User.IsInRole:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WorkshopASPNETMVC_III_Start.Controllers

{

public class ControlpanelController : Controller
{
    //
    // GET: /Controlpanel/

    public ActionResult Index()
    {

        if (User.IsInRole("Beheerder"))
        {
            return RedirectToAction("Beheerder");
        }
        else if (User.IsInRole("Student"))
        {
            return RedirectToAction("Student");
        }
        else
        {
            return View();
        }
    }

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

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

}
}

我在User.IsInRole上的调试:

在这里您可以看到它表示Name为空且IsAuthenticated为false。这是之后我以“Beheerder”身份登录后的 Here you can see that it says that Name is empty and IsAuthenticated is false. This is what I get *after* I logged in as "Beheerder"

我创建了自己的RoleProvider,它在Web.config和相应的appSettings中添加。 (选择是因为我正在使用的虚拟机。)

enter image description here

我的CustomRoleProvider获取我的角色“Beheerder”。它正在调用的查询有效。

enter image description here

当我调试我的'问题'时,我发现adbc.getRollen(用户名)上的断点永远不会到达。任何有/熟悉问题的人,或者能引导我朝正确方向前进的人?

0 个答案:

没有答案