【问题标题】:Forms Authentication with JavaScript使用 JavaScript 进行表单身份验证
【发布时间】:2011-05-04 08:06:29
【问题描述】:

我有一个使用表单身份验证的 asp.net 应用程序。

我有一个母版页,其中包含一些运行良好的 javascript,但是每当我定向到 LoginUrl 时,我的 javascript 都会被阻止。 我认为这是授权问题,但母版页的 CSS 不会发生这种情况,甚至以下指令也无济于事:

<location path="Scripts">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>

有人知道吗? Plz Plz,我在这里不知所措......

感谢

【问题讨论】:

  • 你说的被屏蔽是什么意思?尝试在浏览器上打开js地址
  • 这似乎不是授权问题。请发布您的登录页面代码,了解您如何使用/引用 js 文件...

标签: javascript asp.net forms-authentication


【解决方案1】:

您可能引用了错误的 Javascript 文件(无法从登录页面正确解析的相对目录)...使用 FireBug Net 选项卡检查您是否收到脚本文件,它可以显示请求、响应和失败。

【讨论】:

    【解决方案2】:

    放入 Global.asax

    Public Sub FormsAuthentication_OnAuthenticate(ByVal sender As Object, ByVal args As FormsAuthenticationEventArgs)
        If args.Context.Request.Path.EndsWith("js") Or args.Context.Request.Path.EndsWith("css") Then
            Dim ObjUser As WindowsIdentity = args.Context.Request.LogonUserIdentity
            Dim ObjPrincipal As WindowsPrincipal = New WindowsPrincipal(ObjUser)
            args.User = ObjPrincipal
        End If
    End Sub
    

    【讨论】:

    • 用户最好遵循框架的标准和准则并利用 web.config 文件来允许对脚本文件夹的权限,而不是在 global.asax 文件中放置黑客.特别是在这种情况下,问题的原因尚未确定。
    猜你喜欢
    • 1970-01-01
    • 2011-06-12
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    相关资源
    最近更新 更多