User.IsInRole函数存在问题。
这里有一些截图和代码:
我的登录表单包含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”身份登录后的。
我创建了自己的RoleProvider,它在Web.config和相应的appSettings中添加。 (选择是因为我正在使用的虚拟机。)
我的CustomRoleProvider获取我的角色“Beheerder”。它正在调用的查询有效。
当我调试我的'问题'时,我发现adbc.getRollen(用户名)上的断点永远不会到达。任何有/熟悉问题的人,或者能引导我朝正确方向前进的人?