我有一个在 IIS 上运行的 ASP.NET MVC 3 Beta 应用程序。在我的web.config
定义中,我定义了以下负责表单身份验证的部分:
<authentication mode="Forms">
<forms
loginUrl="~/Account/LogOn"
name=".VNK"
protection="All"
timeout="43200"
cookieless="UseCookies" />
</authentication>
定义的登录地址是~/Account/LogOn
。
当我尝试使用以下方式获取登录网址时:
FormsAuthentication.Initialize();
string loginUrl = FormsAuthentication.LoginUrl;
我收到:/VNK/site/Account/Login
为什么我得到的地址与 中定义的地址不同web.config
?
更新:“/VNK/site/”前缀在这里不是问题。问题是类的LoginUrl
属性FormsAuthentication
不反映来自 web.config 的值。这意味着如果我将loginUrl
web.config 中的属性值从“~/Account/LogOn”更改为“~/foobar”,FormsAuthentication.LoginUrl
仍然具有“/VNK/site/Account/Login”的值。为什么 ?