繁体   English   中英

如何让浏览器弹出默认用户认证提示?

[英]How to make the browser prompt for default user authentication pop up?

我在 C# 中有一个 MVC 应用程序。 我需要它来提示默认浏览器身份验证登录弹出窗口,如下图所示。

在此处输入图像描述

然后应用程序应该使用 Active Directory 对其进行验证,并从 AD 获取有关用户的其他一些信息。

如果我有用户名,我在验证和从 AD 获取用户信息方面没有问题。

所以我的问题是如何让浏览器提示这样的模态对话框以及如何访问用户的输入以使用我的 AD 验证它?

这是我到目前为止所拥有的。 代码只会从登录用户那里获取用户名,不会提示弹窗:

private string GetUsernameFromLogon()
    {
        string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        int index = userName.LastIndexOf("\\");
        if (index > 0)
            return userName.Substring(index+1);
        else
            return null;
    }

需要告知浏览器,它必须在后续的 HTTP 请求中提供基本身份验证。 为此,您需要设置 HTTP header:

"WWW-Authenticate", "Basic"

这将通知浏览器下一个请求将具有基本的身份验证凭据

这是一个 C# 示例:

Response.Clear();
Response.StatusCode = (Int32)HttpStatusCode.Unauthorized;
Response.AddHeader("WWW-Authenticate", "Basic");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM