我的.NET应用程序存在问题,有时只能在客户端的位置进行复制,这使得解决起来非常困难。在应用程序中使用表单身份验证。有一个登录页面,每个匿名用户都被重定向到该登录页面。用户输入用户名和密码后,会重定向到DefaultURL或某个预定义页面。问题是,有时当用户输入正确的用户名和密码时,它不会登录,而只是刷新登录页面而没有任何错误消息。在多次输入用户名和密码后,用户可以登录系统。
请参阅我的登录页面Submit_Click代码如下:
Dim userName As String = tbUsername.Text
Dim password As String = tbPassword.Text
Dim returnUrl As String = Request("returnUrl")
If IsValidated() Then
FormsAuth.SignIn(userName, False)
If password = WebConfigurationManager.AppSettings("PasswordDefault") Then
FlashMessage.ErrorMessage("You have default password """ & password & """. Please change it")
Response.Redirect("~/ChangePassword.aspx")
End If
If Not String.IsNullOrEmpty(returnUrl) Then
Response.Redirect(returnUrl)
Else
If Roles.IsUserInRole(userName, Constants.SOME_ROLE) Then
Response.Redirect("~/Forms/SomePage.aspx")
Else
Response.Redirect("~/Default.aspx")
End If
End If
Else
End If
更新:
我检查了Windows事件查看器,它有以下事件:
活动类型:信息
事件来源:ASP.NET 2.0.50727.0
活动类别:网络活动
事件ID:1315
日期:2010年4月29日
时间:上午11:55:56
用户:N / A
电脑:TWDWEB1
说明:
活动代码:4006
事件消息:成员身份凭证验证失败 活动时间:2010年4月29日上午11:55:56 活动时间(UTC):2010年4月29日下午3:55:56
事件ID:9e5aea5a6d6b4f7a96fc38a334d181dd
事件顺序:26
事件发生:4
活动详细代码:0申请信息:
应用领域:/ LM / W3SVC / 1 / Root / DataManipulationsService-1-129170192766483624
信任等级:全满 应用程序虚拟路径:/ DataManipulationsService
应用程序路径:F:\ Development \ DataManipulationsService \
机器名称:TWDWEB1流程信息:
制造商ID:7948
进程名称:w3wp.exe
帐户名称:NT AUTHORITY \ NETWORK SERVICE索取信息:
请求网址:
请求路径:
用户主机地址:
用户:
经过验证:错误 验证类型:
线程帐户名称:NT AUTHORITY \ NETWORK SERVICE要进行身份验证的名称:xxxxxx
自定义活动详情:
有关详情,请参阅http://go.microsoft.com/fwlink/events.asp上的“帮助和支持中心”。
答案 0 :(得分:0)
“客户所在地”是什么意思?您是指从客户端的计算机登录(与您从其他任何地方登录到同一个Web服务器),还是说他们拥有自己的网站副本?
在不知道该问题的答案的情况下,我建议的第一件事是,如果您是从Web场运行,则需要确保设置web.config文件中的machineKey
元素并且在Web场中的每个服务器上都是相同的。
答案 1 :(得分:0)
在signin()调用周围添加一个try / catch块。如果由于客户端系统上的某些配置错误而导致该调用失败,则可以将错误公开给用户或日志。也许代码正在进行任何可能掩盖错误的异常处理?