我的任务是将.NET 3.5应用程序从我们的某些旧服务器移至IIS 8.5级服务器上的新主机,并且毫不奇怪,其中一些根本不会运行。
为了减轻这种情况,我将所有文件导入到一个新项目中,并遍历所有错误,警告和消息,以解决问题。
现在,该应用程序启动,但是登录过程(典型的.NET登录过程,FormsAuthentication.RedirectFromLoginPage(UserName.Text, True)
仅使用不能运行;它不会对用户进行身份验证。
该的web.config文件在以下项authorization
部分:
<anonymousIdentification enabled="false" />
...
<httpModules>
<add name="ScriptModule"
type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
<add name="FormsAuthentication"
type="System.Web.Security.FormsAuthenticationModule" />
</httpModules>
...
<authentication mode="Forms">
<forms loginUrl="Default.aspx"
defaultUrl="default.aspx"
slidingExpiration="true"
timeout="20"
name="FORMSAUTHCOOKIE"
protection="All" />
</authentication>
...
<authorization>
<allow users="*"/>
<deny users="?"/>
</authorization>
我用一些虚拟变量修改了后面的代码,以供手表监视...
1 If row.ItemArray.Length <> 0 And Not row("Suspended") Then
2 Session("isadmin") = row("Administrator")
3 Session("email") = row("Email")
4 Session("welcome") = row("Forename") & " " & row("Surname") & " (" & row("Department") & "), logged in"
5 uAdapter.UpdateLastLogin(row("UserName"), row("Password"))
6 FormsAuthentication.RedirectFromLoginPage(UserName.Text, True)
7 Dim y As Boolean = Request.IsAuthenticated
8 Dim x As HttpCookieCollection = Request.Cookies
9 Dim z As HttpCookie = Request.Cookies.Item("FORMSAUTHCOOKIE")
10 Dim a As Int32 = -1
11 Else
12 Msg.Text = "Invalid login details. Please try again."
13 End If
第7至10行用于测试和读取代码中不存在的其他值。尽管FormsAuthentication.RedirectFromLoginPage(UserName.Text, True)
执行没有错误,但即使有其他地方的引用,它也不会重定向到当前页面以外的任何页面。另外,执行时的第7行的结果为False。
没有错误消息。正在从连接返回数据。两种版本的系统在格式上存在差异,但我将其归结为IIS上的呈现。
有人能发现什么不起作用的明显之处吗?我在某处错过了什么吗?
好的。经过大量研究和许多精彩的附带问题,我所遇到的问题归结于.NET 4.0中的重大更改。
微软在其网站上详细介绍了有关该问题的详细信息,但其详细内容在下面进行了详细介绍...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句