ASP.net 应用程序在登录后绕道进入 IIS.net 网页



我在Visual Studio中开发了一个asp应用程序,并将其安装在服务器机器上。这是一个内部网应用程序,仅适用于办公室网络中的客户端。 它在服务器计算机上的 IIS 下运行。

该应用程序在我的开发环境中运行良好,并且已被少数用户安装并有限使用,并且在那里也运行良好。启动时,应用程序将显示登录/密码屏幕,然后继续转到默认页面(基本上是主菜单类型页面(。

当我扩大用户群以包括办公室中的其他人时,我发现,莫名其妙地(对我来说(在某些机器上,程序显示登录/密码屏幕,但不是继续默认页面,而是显示 IIS.net 欢迎页面(以许多不同的语言显示"欢迎"一词(, 然后转到 IIS.net 默认网页。

我不知道该去哪里解决问题。我不知道我可以包含什么代码来查找错误。如果我不得不猜测,我会认为这是客户端计算机上某个地方的问题,但我不确定,也不知道去哪里找。

任何帮助或建议将不胜感激。

好吧,经过多次搜索,我想出的不一定是解决问题的方法,但至少是一个解决方法。

我正在使用表单身份验证。在我的 web.config 文件中是以下内容:

<authentication mode="Forms">
<forms name="CustCookie" loginUrl="~/Login.aspx" protection="All" timeout="30" path="/"/>
</authentication>

我从某处读到的内容中获取了登录页面的逻辑,并在我的登录程序中有以下语句:

FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet)

其中登录屏幕有一个用户名文本框和一个用于检查"记住我"的框(我已禁用,因为我现在不想要"记住我"选项。

我输入了一些代码来让我看到发生了什么:

Dim m_url as string = FormsAuthentication.GetRedirectUrl(RptObj.User.UserName, false(

并发现对于某些用户,url 返回正常,而对于其他用户,我得到的只是"/",这导致它重新路由到 IIS 主页。我在 web.config 表单行中添加了一个"defaultUrl="~/default.aspx",但这并没有解决它,所以我在我的登录程序中添加了以下内容:

Dim m_url As String = FormsAuthentication.GetRedirectUrl(RptObj.User.UserName, False)
If m_url = "/" Then
Server.Transfer("~/default.aspx")
Else
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet)
End If

在我脑海中,这不是完成工作的非常优雅的方式,但它奏效了。

最新更新