<authentication mode="Forms">
<forms name="ASPAuth"
path="/Admin"
timeout="20"
requireSSL="false"
slidingExpiration="true" />
</authentication>
在我的开发系统上,我在web.config中有上述内容。如果我使用VS Web服务器,这工作正常。但是当我使用虚拟目录在我的IIS7上托管同一个网站时,却没有。
VS Url看起来像:http://localhost:xxxx/
IIS网址如下:http://MachineName/MyApp/。
通过IIS访问网站时,IsAuthenticated始终为false。我发现这是因为Cookie被分配到http://MachineName/Admin/而不是http://MachineName/MyApp/Admin。
我是如何制作的,以便“管理员”是相对路径?我尝试了path =“〜/ Admin”,但这不起作用。
谢谢!
答案 0 :(得分:1)
尝试将转换放入Web.Release.Config:
<authentication mode="Forms">
<forms name="ASPAuth"
path="/MyApp/Admin"
timeout="20"
requireSSL="false"
slidingExpiration="true"
xdt:Transform="Replace"
xdt:Locator="Match(key)"/>
</authentication>
答案 1 :(得分:1)
答案:
在这个阶段根本不可能做到这一点。除非您愿意编写自己的HttpModule,否则不能在web.config中为表单身份验证路径设置带有tilda(〜)的相对路径。
查看此帖(和评论): http://www.west-wind.com/weblog/posts/2008/Jan/20/Forms-Authentication-and-path-in-the-forms-Tag