目前我正在尝试解决我的问题——即以我认为应该如何工作的方式在我的 Intranet 站点上实施 NTLM 授权,即仅在某些页面上询问密码。不只是点击主页——所以网站应该分为两部分:对所有人开放和受限。
我使用 Nancy 框架的问题,它本身没有实现 NTLM。但这不会阻止真正的牛仔程序员。所以我正在尝试开发自定义请求/响应序列来实现这个目标。
现在我已经发现了这个 Q&A,但是那里的解决方案粘在 IIS 上......
我发现有很多关于 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 授权的第一阶段。是否可以通过涉及即用型助手来避免大量手动代码来实现其他步骤?