"Cannot use a leading .. to exit above the top directory"这个异常有点奇怪,不是普通代码逻辑broken了。
具体原因是这样对于不支持cookie的某些终端,例如some spiders, pc clients.
asp.net 2.0机制针对sessionid存储有两种方式:用cookie来存和放在url中。
对于不支持cookie,web.config的默认配置会把session id放在url里,所以会破坏你的Url rewrite的匹配规则。
所以简单点的方法你可以考虑这样简单配置一下:
<authentication mode="Forms">
<forms loginUrl="/login" defaultUrl="/" cookieless="UseCookies">
</forms>
</authentication>
复杂点的看看这篇reference:
http://todotnet.com/archive/2006/07/01/7472.aspx