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应用程序中查询Word docx?
- asp.net – 如何使用MVC 4和View Models(强类型)渲染一组复
- asp.net-mvc – warns – html.helpers在项目更新后无法识别
- ASP.NET 路由实现页面静态化
- asp.net-mvc – ASP.NET核心映射到静态文件处理程序的路由
- 内容管理 – ASP.NET建议[已结束]
- asp.net – Model-View-Presenter,View的界面属于哪里?
- asp.net-mvc – 是否可以在IIS服务器上部署asp.net mvc项目
- asp.net – Web.config自定义错误模式冲突
- ASP.net代码背后和来自C#
- asp.net – 在Visual Studio 2012中创建控制器时
- asp.net-mvc – MVC ELMAH和SQL Azure
- 内容管理 – ASP.NET建议[已结束]
- ASP.NET Web Api HttpResponseException 400(错误
- asp.net-mvc – NHibernate缓存问题 – 何时调用
- asp.net-mvc – 在VS2013中将Azure单点登录添加到
- asp.net-mvc – 在MVC3中渲染导航
- asp.net – 为MVC3应用程序中的某些操作启用并要
- asp.net-mvc – 在ASP.NET MVC控制器结果中设置H
- asp.net-core – Asp.Net 5中的自定义ClaimsPrin