首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ControllerContext.HttpContext.User是空的

ControllerContext.HttpContext.User是空的
EN

Stack Overflow用户
提问于 2017-12-20 14:38:16
回答 1查看 505关注 0票数 0

我有一个MVC项目,我把它从C#转换成VB,我有问题。该项目有一个扩展方法IsSysAdmin(),用于尝试获取登录用户名的ControllerBase类。该网站设计为使用,并在根级web.config中有适当的条目来启用它,包括一个仅允许登录用户访问该站点的条目(拒绝users="?")。IsSysAdmin()函数由站点共享布局视图中的Razor引用调用。

下面是该函数的VB代码:

代码语言:javascript
复制
<Extension()>
Public Function IsSysAdmin(ByVal controller As ControllerBase) As Boolean
    Dim bIsSysAdmin As Boolean = False

    Dim loggedInUser = controller.ControllerContext.HttpContext.User.Identity.Name

---- Other code

    Return bIsSysAdmin

End Function

以下是C#代码:

代码语言:javascript
复制
    public static bool IsSysAdmin(this ControllerBase controller)
{        
    bool bIsSysAdmin = false;

    string loggedInUser = controller.ControllerContext.HttpContext.User.Identity.Name;

---- Other code

    return bIsSysAdmin;
}

C#版本没有问题。loggedInUser变量获取实际登录的用户名。但是,在VB版本中,loggedInUser是空白的。

很明显我错过了什么但我不知道是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-20 15:34:23

默认情况下,Visual的IISExpress设置具有匿名身份验证。

您需要关闭该项目的属性。

  1. 在解决方案资源管理器中选择您的项目。
  2. 单击F4
  3. 将匿名身份验证设置为禁用
  4. 将Windows身份验证设置为已启用
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47908427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档