FormsAuthentication选择性地为url

时间:2008-09-17 16:39:50

标签: asp.net forms-authentication

是否有办法实现表单身份验证,但仅适用于特定的URL。例如,我希望formsAuthentication在staging.mydomain.com上保护站点,但如果web.config意外地移动到生产站点,则不希望访问www.mydomain.com。

4 个答案:

答案 0 :(得分:1)

这可以实现,但你必须为它实现自己的IHttpModule。 Alas FormsAuthenticationModule是密封的,这意味着您必须从头开始,但Reflector可以在那里提供很好的帮助。

答案 1 :(得分:1)

我们过去曾使用过简单的解决方法。

我们将默认的登录页面设置为匿名用户可以访问的简单页面,我们称之为checkDomain.aspx

在该页面中,我们对域进行快速检查,并根据我们将用户重定向到登台站点中的login.aspx页面或生产站点中的原始请求URL。这不是很好,但是当我们担心这样的事情可能发生时,它很快就很容易实现。

答案 2 :(得分:0)

表单身份验证在网站实例上实现。它不会那样工作。

答案 3 :(得分:0)

您可以在web.config中管理FormsAuthentication的功能。所以,答案就在你的问题中,而@Andrew是对的。

但是,您可以在global.asax中执行某些操作来识别运行该站点的服务器或域并禁用FormsAuthentication。如果域名是www.mydomain.com,也许创建一个可以访问所有内容的用户并在会话开始时手动将FormsAuthenticationTicket设置为该用户。

这有点hackish,我建议用一种带外方式来控制你的web.config。