我正在重构一个工作的ASP.NET Web应用程序来公开Web服务接口使用ASP.NET Web服务.根据
Web Services authentication – best practices,基本的Auth over https是要走的路.我们假设它是,而不是做WS-Security,X509等.
在.NET 3.5 / VS 2008中,实现自定义http基本身份验证(非Windows帐户)的最简单方法是,例如,仅当用户名为“foo”且密码为“bar”时才接受.最终,我想要Thread.CurrentPrincipal集.
我写我自己的HttpModule还是可以简化一下呢?
解决方法
可能使用
Custom Basic Authentication for IIS,Dominick Baier写的是要走的路.
As he points out WCF 3.5的传输安全性用户名不能用于IIS托管服务,尽管我的问题是关于ASP.NET Web Services不是WCF.
Santosh Sahoo还有另一个实现的HTTP模块叫Basic authentication in ASP.NET against custom datasource.
虽然这不是我想要的,但我发现QuickStart Tutorial’s SOAP Headers sample是有用的解决方案.通过http发送纯文本的密码显然是不安全的,但是这个例子可以扩展到增加更多的安全性,例如在https上运行或发送“密码一次性GUID时间戳”的哈希.