以下是一个使用ASP.NET Core 3.1和IIS 10.0进行Windows身份验证的解决方案,包含代码示例:
首先,请确保您已安装了.NET Core SDK和Visual Studio。
打开Visual Studio并创建一个新的ASP.NET Core Web应用程序项目。选择ASP.NET Core Web应用程序模板,并选择ASP.NET Core 3.1版本。
打开项目的Startup.cs
文件,并在ConfigureServices
方法中添加以下代码:
services.AddAuthentication(Microsoft.AspNetCore.Server.IISIntegration.IISDefaults.AuthenticationScheme);
这将配置应用程序使用IIS集成进行Windows身份验证。
在IIS中创建一个新的网站或虚拟目录,并将其指向您的应用程序的根目录。
在IIS管理器中,选择您的网站或虚拟目录,然后双击“身份验证”功能。
禁用除Windows身份验证以外的所有身份验证方法,并确保Windows身份验证已启用。
创建一个受保护的控制器和视图,以便只有通过Windows身份验证的用户才能访问它们。
在控制器的顶部添加[Authorize]
特性,以确保只有经过身份验证的用户可以访问该控制器。例如:
[Authorize]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
完成开发后,将应用程序发布为可部署的包。
在IIS中创建一个新的应用程序池,并将其配置为使用.NET CLR版本为No Managed Code。
将应用程序发布到IIS中的网站或虚拟目录。
启动浏览器,并尝试访问受保护的控制器和视图。如果您已通过Windows身份验证登录,并且应用程序正确配置,您应该能够成功访问这些页面。
希望这个解决方案对您有所帮助!