gpt4 book ai didi

用于实现 NTLM 授权的 C# 帮助程序类

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:37 25 4
gpt4 key购买 nike

目前我正在尝试解决我的问题 — 以我认为应该工作的方式在我的 Intranet 站点上实现 NTLM 授权,即仅在某些页面上询问密码。不仅仅是点击主页 - 所以网站应该分为两部分:所有人可用和受限。

问题我使用的是 Nancy 框架,它本身没有实现 NTLM。但这不会阻止真正的牛仔程序员。所以我正在尝试开发自定义请求/响应序列来实现这个目标。

现在我发现了this Q&A ,但是那里的解决方案粘在了 IIS 上......

我发现了 site有很多关于 NTLM 的复杂信息,我想知道是否有任何 C# 类可以简化这个过程?

即,帮助创建不同类型的响应。

目前我的代码是这样的:

Get["/Profile/"] = parameters =>
{
var request = this.Request;

if (this.Request.Headers.Keys.Any(x => x == "Authorization"))
{
var items = Response.Context.Items;

var expert = new Expert(WindowsIdentity.GetCurrent());
var model = expert.Ensure();

return View["Profile.liquid", model];
}
else
{
var response = new Response();
response.StatusCode = HttpStatusCode.Unauthorized;
response.Headers.Add("WWW-Authenticate", "NTLM");
return response;
}
};

但它只实现了 NTLM 授权的第一阶段。是否可以通过使用现成的帮助程序来避免大量手动代码来实现其他步骤?

最佳答案

如果您真的想自己编写所有这些内容,我认为您将面临一项艰巨的任务。此 URL 可能对您有所帮助,它包含有关 NTLM 身份验证的一般信息,但也显示了使用 NTLM 进行 HTTP 身份验证的对话示例:

http://davenport.sourceforge.net/ntlm.html#ntlmHttpAuthentication

另一个可能的探索途径是查看 Mono 代码库中是否有任何您可以使用的东西 - 这就是我们对内置 JSON 序列化程序所做的。

另一种选择是使用表单或基本身份验证,但根据 AD/LDAP 对用户名/密码进行身份验证。

关于用于实现 NTLM 授权的 C# 帮助程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13805704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com