【问题标题】:Method marked with [Authorize] attribute has User.Identity.Name as null标有 [Authorize] 属性的方法的 User.Identity.Name 为 null
【发布时间】:2012-08-20 09:50:03
【问题描述】:

这怎么可能?使用 MVC Razor,我用 [Authorize] 属性标记了我的方法,这意味着用户必须登录才能访问视图对吗?但是,有时我将 User.Identity.Name 值设为空(那么谁登录了?)。

我的方法没有在授权属性中定义任何角色,就像这样:

[Authorize]
public ActionResult PageToView(){
...
return View();
}

编辑:我正在使用默认的角色和成员资格提供程序。

【问题讨论】:

  • 您的网站使用什么身份验证机制?您使用的是哪个角色提供程序?有几种可能性,所以让我们尝试缩小范围:-)
  • 您是否尝试将 Glimpse (getglimpse.com) 添加到您的项目中?这将帮助您查看 Context.User 何时变为空(如果有的话)。
  • @rob 你在使用表单身份验证吗?工作流程可能非常棘手;身份验证和返回到设置用户的客户端的响应之间总是存在间隔,但它还没有真正准备好使用。可能是您遇到了这个问题:stackoverflow.com/questions/1056487/…

标签: asp.net asp.net-mvc-3 razor forms-authentication


【解决方案1】:

我之前也遇到过类似的问题,这是因为 HttpContext.Current.User 从未被填充。

请查看HttpContext.Current.User.Identity.Name returning null。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2020-12-14
    • 1970-01-01
    • 2020-01-29
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 2021-08-04
    相关资源
    最近更新 更多