gpt4 book ai didi

asp.net-mvc - IIS7 - 密码保护开发服务器

转载 作者:行者123 更新时间:2023-12-04 08:01:03 25 4
gpt4 key购买 nike

我有一个运行 IIS 7.0 和 ASP.NET MVC Web 应用程序的开发服务器,它使用表单例份验证/成员(member)身份进行身份验证。

我需要能够阻止未经授权的用户查看此站点。然而,我们的客户应该能够输入一个简单的用户名/密码来获得访问权限。

在他们这样做之后,他们应该能够使用表单例份验证与 Web 应用程序交互,就像他们刚刚来到一个不 protected 站点一样。

有什么建议?

最佳答案

我之前的回答说表单例份验证和基本 http 身份验证可以在 II7 集成模式下并存。我完全错了,此后做了一个简单的解决方案。

使用自定义 HttpModule,您可以在常规表单例份验证旁边添加基本身份验证

public class CustomBasicAuthHttpModule : IHttpModule
{
private HttpApplication httpApplicationContext;

public void Dispose()
{
}

public void Init(HttpApplication context)
{
this.httpApplicationContext = context;
context.BeginRequest += this.OnBeginRequest;
context.EndRequest += this.OnEndRequest;
}

private void OnBeginRequest(object sender, EventArgs e)
{
// your logic of checking Auth header goes here
if (this.httpApplicationContext.Request.Headers["Authorization"] != "Basic base64-encoded-user:pass")
{
this.httpApplicationContext.Response.StatusCode = 401;
this.httpApplicationContext.Response.End();
}
}

private void OnEndRequest(object sender, EventArgs e)
{
if (this.httpApplicationContext.Response.StatusCode == 401)
{
this.httpApplicationContext.Response.AddHeader("WWW-Authenticate", "Basic");
}
}

然后在你的 web.config
  <system.webServer>
<modules>
<add name="CustomBasicAuthHttpModule" type="Namespace.CustomBasicAuthHttpModule, AssemblyName"/>
</modules>
</system.webServer>

关于asp.net-mvc - IIS7 - 密码保护开发服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1233362/

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