我有一个MVC项目,我把它从C#转换成VB,我有问题。该项目有一个扩展方法IsSysAdmin(),用于尝试获取登录用户名的ControllerBase类。该网站设计为使用,并在根级web.config中有适当的条目来启用它,包括一个仅允许登录用户访问该站点的条目(拒绝users="?")。IsSysAdmin()函数由站点共享布局视图中的Razor引用调用。
下面是该函数的VB代码:
<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#代码:
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是空白的。
很明显我错过了什么但我不知道是什么。
发布于 2017-12-20 15:34:23
默认情况下,Visual的IISExpress设置具有匿名身份验证。
您需要关闭该项目的属性。
https://stackoverflow.com/questions/47908427
复制相似问题