2 asp.net forms-authentication
我正在asp.net网站上实现简单身份验证。使用基本的表单身份验证几乎是完美的:我将auth模式设置为Forms,并在web.config中有一个简短的凭据部分,并使用一个简单的Login aspx页面,该页面使用FormsAuthentication.Authenticate()和FormsAuthentication.RedirectFromLoginPage()。
但是,我想为某些客户端IP地址添加其他检查。如果请求来自某个IP地址,我想自动授权该请求,而不是将该请求重定向到“登录”页面。有没有简单的方法来扩展或覆盖内置表单AuthenticateRequest?我的另一个选择是创建自己的HttpModule来执行此操作,但是,如果我这样做,似乎会丢失FormsAuthentication方法的良好功能以及它们与凭据部分的交互。有什么建议么?
首先,您确定要执行此操作吗?如果有人可以猜测您未验证的IP地址范围,则IP欺骗将是攻击您的站点的理想方法!即使他们只是知道地址范围,这也使得暴力攻击变得微不足道。
其次,您可以只检查登录页面中的IP地址并从那里进行重定向...不需要HttpModule。但是,再次,如果我是你,我不会这样做。
更新: RG-几件事。我的想法是,您将在重定向之前进行Authenticate()调用。这样可以避免重定向环回。但是看起来您甚至不需要它,因为...
其次,从下面的评论(在Ben的帖子中),您将在Web Service中使用此代码。如果是这样,您是否不能将Web服务作为允许的访问页面放在Web.Config页面中?只需添加:
<location path="YourWebService.asmx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
尽管我们确实要求我们的Web服务用户在处理Web服务请求(它也经过SSL加密)之前先发送一个“魔术短语”,但这仍是我们的工作。