【发布时间】:2011-05-04 11:47:18
【问题描述】:
我有一个在 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/”前缀在这里不是问题。问题是FormsAuthentication 类的LoginUrl 属性不反映来自web.config 的值。这意味着如果我将 web.config 中 loginUrl 属性的值从“~/Account/LogOn”更改为例如“~/foobar”,FormsAuthentication.LoginUrl 的值仍然是“/VNK/site/Account/Login”。为什么?
【问题讨论】:
-
尝试从您的名称属性中删除句点,即。
name="VNK" -
@Jimmy - name 属性对这个问题完全没有影响。 name 属性只是设置包含身份验证票证的 cookie 名称的后缀。
-
我知道,只是在黑暗中拍摄,因为其他一切看起来都不错
标签: asp.net asp.net-mvc iis asp.net-mvc-3