首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核心在可用时使用Windows身份验证,在不可用时使用用户名和密码

问ASP.NET核心在可用时使用Windows身份验证,在不可用时使用用户名和密码
EN

Stack Overflow用户
提问于 2021-11-02 01:22:32
回答 1查看 602关注 0票数 1

我们有一个网站,我们正在开发使用ASP.NET核心5.0,我们希望允许员工和客户访问。

员工在具有Active Directory帐户的域上,而客户端不在。

我们希望允许员工使用Windows Active Directory身份验证自动登录,但将客户端定向到登录页面,以根据我们的数据库验证他们的用户名和密码。

我们有这两件事都在工作,即如果我们只为站点工作人员打开Windows身份验证就可以自动登录。如果我们只启用匿名身份验证,就会有一个登录页面,所有用户都可以使用用户名和密码登录。

问题是,如果同时启用Windows身份验证和匿名身份验证,则可以使用调用

代码语言:javascript
复制
context.ChallengeAsync(Microsoft.AspNetCore.Server.IISIntegration.IISDefaults.AuthenticationScheme);

要尝试使用Active Directory进行登录,此方法运行良好,并以静默方式登录使用Active Directory的员工,但对于客户端(即公共用户),这将显示浏览器登录提示,要求提供域用户名密码

​

​

我们根本不想让客户看到这一点,而是将他们重定向到我们的登录页面。

如果可以,我们如何调用ChallengeAsync进行Active Directory登录,但如果不能,则不显示登录提示,而只是重定向到登录页面?

EN

回答 1

Stack Overflow用户

发布于 2021-11-02 04:46:37

This article展示了如何设置ASP.NET核心MVC应用程序来支持可以使用本地登录帐户登录的用户、特定于解决方案的用户,或者使用windows身份验证登录的用户。然后,从windows认证创建的身份可以被允许执行不同的任务,例如管理,或者来自本地认证的用户可以用于访客帐户等。为此,使用IdentityServer4来处理认证。ASP.NET核心MVC应用程序使用OpenID连接混合流。

找到repo code here。

注意:运行时需要允许IISExpress证书。

代码语言:javascript
复制
{
  "iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:44364/",
      "sslPort": 44364
    }
  },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69804422

复制
相关文章

相似问题

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