微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET表单身份验证不起作用

如何解决.NET表单身份验证不起作用

| 我的.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 AM   用户: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的“帮助和支持中心”。     

解决方法

“客户位置”是什么意思。您是要从客户端计算机登录(与从任何其他位置登录到同一台Web服务器),还是要他们拥有自己的网站副本? 在不知道该问题的答案的情况下,我首先建议的是,如果您是从Web场运行的,则需要确保在web.config文件中设置了ѭ1the元素,并且每个元素都相同Web场中的服务器。     ,在signin()调用周围添加一个try / catch块。如果由于客户端系统上的某些错误配置而导致该调用失败,则可以向用户或日志公开错误。也许代码正在执行任何可能掩埋错误的异常处理?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。