ASP.Net – 在没有Windows用户的情况下使用基本身份验证
|
我们有一个在IIS6上运行的ASP.Net Web应用程序,它管理着自己的用户数据库. 网站本身只允许匿名访问,所有的身份验证/安全性都是使用我们的应用程序本身来管理的. 我们有一个页面,其中包含我们导入到Excel中的HTML数据表,然后用于报告.该页面目前没有实现安全性. 我们需要增加这个页面的安全性,所以如果这些电子表格落在错误的手中,那么数据不能“刷新”,而不提供用户名/密码. 如果我将此页面设置为不允许Anonymouse访问,那么我可以使用Windows用户的Basic / Windows身份验证,以确保此页面的安全.然后当Excel刷新数据时弹出密码对话框. 问题是我需要能够根据数据库中的用户来保护这个页面,而不会是Windows用户.我还需要这样做,这样可以让Excel管理不包含基于表单的身份验证的身份验证. 任何人有任何想法?是否可以让IIS查看其他地方的基本身份验证? 解决方法好的,所以我找到了这个问题的两个解决方案.感谢Zhaph – Ben Duguid的答案,这是一个允许ASP.Net完全管理身份验证的HttpModule.第二个解决方案和我正在进行的解决方案是感谢这个问题/答案. HTTP Authentication (Basic or Digest) in ASP Classic via IIS 我已经把它删除了,并且有一个简单的测试工具似乎运行良好.在这个例子中,而不是数据库调用,它只是检查用户名和密码是否匹配,并认为已通过身份验证. using System;
using System.Text;
namespace AuthenticationTests
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
string authorisationHeader = Request.ServerVariables["HTTP_AUTHORIZATION"];
if (authorisationHeader != null && authorisationHeader.StartsWith("Basic ",StringComparison.InvariantCultureIgnoreCase))
{
string authorizationParameters = Encoding.Default.GetString(Convert.FromBase64String(authorisationHeader.Substring("Basic ".Length)));
string userName = authorizationParameters.Split(':')[0];
string password = authorizationParameters.Split(':')[1];
if (userName == password) //Perform your actual "login" check here.
{
//Authorised!
//Page loads as normal.
}
else
{
Unauthorised();
}
}
else
{
Unauthorised();
}
}
private void Unauthorised()
{
Response.AddHeader("WWW-Authenticate","Basic");
Response.Status = "401 Unauthorized";
Response.End();
}
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 对复选框不起作用的MVC不显眼的验证
- asp.net – Knockout.js – 数据绑定的javascript函数
- asp.net-mvc-3 – ASP.NET MVC 3和App_Code文件夹
- asp.net-mvc – 调试ASP.NET MVC绑定的最佳实践
- asp.net-mvc – 如何使用ASP.NET MVC实现自定义缓存提供程序
- asp.net-mvc – 使用Windows身份验证与活动目录组作为角色
- ASP.NET – IIS7 – IBM DB2问题
- asp.net-mvc – AJAX POST到MVC Controller显示302错误
- asp.net-mvc – 保存为“BodyPart_3ded2bfb-40be-4183-b789
- .net – 可以为空的枚举类型的奇怪行为
- asp-classic – 从Classic ASP执行存储过程
- asp.net-mvc – 强制剃刀不逃避网址
- asp.net – 通过web.config覆盖machine.config
- asp.net core 2.0 – 多个项目解决方案docker文件
- ASP.NET 5 OAuth承载令牌认证
- asp.net – RDLC和SSRS之间的区别
- asp.net-mvc – HttpResponseMessage内容不会显示
- 如何在ASP.NET中手动设置按钮输入类型?
- asp.net-mvc – 如何使用ASP.NET MVC 2验证两个属
- asp.net-mvc-3 – MVC 3模型属性未在html.action
