Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ADFS 3.0-扩展功能_Javascript_Adfs_Adfs3.0 - Fatal编程技术网

Javascript ADFS 3.0-扩展功能

Javascript ADFS 3.0-扩展功能,javascript,adfs,adfs3.0,Javascript,Adfs,Adfs3.0,我目前正在实施一个包含ADFS 3.0和多因素身份验证的解决方案。我已经按照TechNet()中的步骤设置了示例适配器,效果很好。 我现在想扩展它,并面临一些问题。我在网络和stackoverflow上搜索过类似的东西,但找不到任何东西,所以我将它们全部发布在这里。不确定我是否需要将其分为不同的问题: 我需要扩展适配器,使部分html由外部脚本呈现,也就是说,我需要添加一个额外的脚本,以便在呈现adfs适配器html时加载。 据我所知,可以修改主题以在onload.js中包含额外的javascr

我目前正在实施一个包含ADFS 3.0和多因素身份验证的解决方案。我已经按照TechNet()中的步骤设置了示例适配器,效果很好。 我现在想扩展它,并面临一些问题。我在网络和stackoverflow上搜索过类似的东西,但找不到任何东西,所以我将它们全部发布在这里。不确定我是否需要将其分为不同的问题:

  • 我需要扩展适配器,使部分html由外部脚本呈现,也就是说,我需要添加一个额外的脚本,以便在呈现adfs适配器html时加载。 据我所知,可以修改主题以在onload.js中包含额外的javascript,但我不想走这条路,因为脚本确实需要从外部加载
  • 我能想到的唯一方法,也是最有效的方法,就是在html中注入javascript,以友好方式加载脚本,如下所示:

    var script =document.createElement('script')
    fileref.setAttribute("type","text/javascript")
    fileref.setAttribute("src", <my_script_loaded_over_http>)
    
    fileref.onload =
            function() {
             //call script method
            };
    
    var script=document.createElement('script'))
    fileref.setAttribute(“类型”、“文本/javascript”)
    fileref.setAttribute(“src”,)
    fileref.onload=
    函数(){
    //调用脚本方法
    };
    
    但是,由于外部脚本的某些逻辑依赖于窗口的“onload”事件,它无法工作,因为加载太晚

    这可能吗

  • 适配器是否可以注入新的响应头?(我想不是)

  • 是否有一种标准的方法向适配器dll提供配置文件,以便在运行时可以更改某些值,而无需部署新的dll?如果没有,将上述配置文件写入adfs文件夹并从中读取是否安全


  • 非常感谢

    我自己设法解决了这个问题:

    1-接口IAdapterPresentationForm提供了一种方法来返回我想要包含的任何脚本或css:string GetFormPreRenderHtml(int lcid),例如:

    参考:

     public string GetFormPreRenderHtml(int lcid){
            StringBuilder sb = new StringBuilder();
            sb.Append("<script src='http://myjs.js' type='text/javascript'></script>");
            sb.Append("<link rel='stylesheet' type='text/css' href='http://mycss.css' />");
            return sb.ToString();
     }
    
    void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData)