我正在使用ASP.NET MVC 5构建站点,并希望通过现有的安全层MVC 5角色来保护Glimpse。 Glimpse是版本1.8.6
我编写了我的IRuntimePolicy实现,源自示例代码。当我通过我的代码运行时,请求的IsAuthenticated属性始终为false。即使我已登录(在控制器中此属性为true)。任何人都能帮我解决我做错的事吗?我认为在应用设置中设置 Glimpse:DisableAsyncSupport 会有所帮助,但事实并非如此。
这是我对IRuntimePolicy的实施
public RuntimePolicy Execute(IRuntimePolicyContext policyContext)
{
var userManager = new UserManager(new UserStore<MyUser>(new ApplicationDbContext()));
var httpContext = HttpContext.Current;
if (httpContext.Request.IsAuthenticated) //ALWAYS FALSE, EVEN WHEN IM LOGGED IN
{
var userId = httpContext.User.Identity.GetUserId(); //User is null
if (userManager.IsInRole(userId, "Admin"))
return RuntimePolicy.On;
}
return RuntimePolicy.Off;
}
答案 0 :(得分:2)
您必须为模块添加<modules runAllManagedModulesForAllRequests="true" />
或添加precondition =“managedHandler”。请在此处查看更多解释:enter link description here第一个选项可能会遇到性能问题。