【发布时间】:2020-04-19 03:21:30
【问题描述】:
我们正在将 MVC 网站应用程序移至 Azure 服务器。在 Azure 服务器上,我们已经安装了 Visual Studio 2015,并且当前成功运行了以下代码。但是在 IIS 上托管时,相同的代码不起作用
public class HomeController
{
public ActionResult Index()
{
var user = HttpContext.User.Identity.Name.ToUpper()
if(user==NULL)
{
Session["userLogin"] = "";
return View("../Error/NotAuthorized");
}
else
{
Session["userLogin"] = user.DisplayName;
Session["User"] = user;
return View();
}
}
}
我在上面省略了一些不相关的代码。我仍然无法理解为什么当我从 VS 2015 调试时相同的代码可以工作,但在同一服务器的 IIS 上托管时却不能工作。我只在 IIS 中启用了 Windows 身份验证。请帮忙。
【问题讨论】:
-
请解释确切的问题。当您说不工作时,您是否收到任何特定错误或在特定行失败?
-
您的 Azure 托管的详细信息是什么?您提到您启用了
Windows Authentication- Azure 服务器是否在相关 AD 中? -
@RajeshG。你好。感谢您的答复。当我说不工作时,当我在 IIS 上托管时,用户被设置为 NULL。但是当我从 VS2015 localhost 运行相同的代码时,HttpContext.User.Identity.Name 正在返回我的用户名。当我尝试从 IIS 访问站点时,我通过服务器的 IP 访问。
-
@BrendanGreen。感谢您的答复。 Azure 托管是通过 Internet 而非 VNET 的 Azure 外部服务器。
-
您是否在控制器、方法或主机配置上定义了
Authorize属性?
标签: c# asp.net .net asp.net-mvc azure