我正在开发一个完美运行的WebFrom应用程序 测试(UAT)机器,但在生产机器中表现奇怪。
(使用复制/粘贴文件方法将代码发布到生产中):
以下代码:
<asp:LinkButton id="logoutlink" runat="server" OnClick="logoutlink_Click">Logout</asp:LinkButton>
代码背后:
protected void logoutlink_Click(object sender, EventArgs e)
{
Session.Abandon();
FormsAuthentication.RedirectToLoginPage();
}
在DEV和UAT环境中没有任何问题,但在生产中我们得到:
The resource cannot be found: Requested URL: /MyApp/shared/login.aspx does not exist
令人惊讶的是此应用程序从未拥有共享文件夹。我在整个解决方案中搜索了对共享文件夹的任何引用,但找不到它。
也许RedirectToLoginPage方法默认查找Shared文件夹?即使我们假设这个,那么为什么DEv和UAT中的相同代码没有错误?
答案 0 :(得分:1)
如果未在web.config身份验证标记中设置c.acct_ID = d.acct_ID
参数,或者当您调用loginUrl
方法时,默认情况下RedirectToLoginPage
方法会在{{1}中搜索RedirectToLoginPage
页面默认情况下,文件夹。
您可以在web.config中编写链接,如下所示:
login.aspx
使用您的链接设置 loginUrl 链接。
或者您可以像这样明确指定shared
网址:
<system.web>
...
<authentication mode="Forms">
<forms loginUrl="Autentificare/Account/Login" defaultUrl="~/Home/Index" timeout="30" />
</authentication>
...