代码之家  ›  专栏  ›  技术社区  ›  Ropstah

.NET MVC窗体身份验证-调试isinRole()?

  •  1
  • Ropstah  · 技术社区  · 15 年前

    我正在我的MVC网站上使用表单身份验证。我使用Visual Studio中的默认ASP.NET配置选项管理用户和角色。到目前为止一切都很好。

    我能成功地做到 Page.User.IsInRole("Moderator") 在一个 视图 . True 按预期返回。

    但是在呼叫时 Context.User.IsInRole("Moderator") 里面 阿萨克斯全球公司 Application_PostAuthenticateRequest() (或周期内的任何后续事件,就此事而言…) False 返回。

    两者有什么区别 Page.User Context.User ?如何在global.asax中获得相同的(预期的)结果?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Vlad    15 年前

    在此阶段,上下文可能仍在aspnet帐户或运行应用程序池的帐户下运行。您可能希望在global.asax中创建几个(或全部)可用事件,并将context.user.name的结果打印到文本文件中进行测试。然后您可能会看到该名称是否存在任何值。我看到的是,如果站点作为aspnet帐户运行,那么名称将为空。

    您可能还需要检查与数据库的连接,并查看在context.user.isinRole(“版主”)返回false期间谁试图登录数据库。

    另外,(这是暗中拍摄),你可能想看看thread.currentprocipal.isinRole(“版主”)给你什么。我希望这些建议有助于调试。