背景:
我正在将内部应用程序更新为两步验证过程.我想在传统的用户名/密码表单之上添加客户端证书身份验证过程(通过智能卡).该应用程序是用C#编写的,托管在IIS7上,目标是Chrome和IE8.
问题:
我遇到了让应用程序提示用户输入客户端证书的问题.我一直在Fiddler的帮助下调试应用程序.当我在Fiddler的用户目录(C:\ Documents and Settings\USER\My Documents\Fiddler2)中保存测试客户端证书时,应用程序按预期工作.系统提示我输入保护智能卡的PIN码,输入正确后,会将我带到登录表单.当我关闭Fiddler时,应用程序会抛出403 Forbidden错误(因为Fiddler不再运行并指向其证书).我无法弄清楚的是,为什么应用程序不会正常提示证书.
当前服务器设置:
除了在另一台服务器上从头开始尝试之外,我没有想法.有谁知道问题可能是什么?这似乎应该是相当直接的,我错过了一些小事.欢迎任何想法.
更新:
今天花了更多时间处理这个问题后,我坚信它与IIS7没有正确配置有关(我最初没有设置它).我想这是因为我启用了失败的请求跟踪,查看了生成的后续.xml文件,并看到引发了500错误.
Chrome正在抛出"访问网页被拒绝"消息,而不是"403 - 禁止访问:访问被拒绝".我不知道这是否有帮助.我知道,当我不需要证书时,该网站将按预期工作.要求证书是失败的地方.
应用程序池设置为.Net 4.0 | 经典| 网络服务.
authentication iis-7 client-certificates smartcard windows-server-2008
我正在使用最新版本的JPGraph,我正在尝试更改graph_api文件以显示Group Bar Plots上的值.这是一段显示我的更改的代码片段(对于那些查看API的人来说,这是在graph_group函数中):
$tot = new BarPlot( array_values( $total ) );
$tot->value->show();
$tot->value->SetFormat('%2d');
$tot->value->SetColor('black','black');
$tot->value->SetFont($t_graph_font,FS_BOLD,9);
$tot->SetFillColor('lightblue');
$tot->SetWidth(0.7);
$tot->SetLegend( lang_get( 'legend_total' ) );
$graph->Add($tot);
$p1 = new BarPlot( array_values( $p_metrics['open'] ) );
$p1->SetFillColor( 'yellow' );
$p1->SetWidth( 1 );
$p1->SetLegend( plugin_lang_get( 'legend_opened' ) );
$p1->value->show();
$p1->value->SetColor('white','white');
$p1->value->SetFormat('%2d');
$p1->value->SetFont($t_graph_font,FS_BOLD,8);
$p1->SetFillColor('red');
$p1->SetLegend( lang_get( 'legend_still_open' ) );
$p2 = new BarPlot( array_values( $p_metrics['closed'] ) );
$p2->SetFillColor( 'blue' );
$p2->SetWidth( 1 );
$p2->SetLegend( plugin_lang_get( 'legend_closed' ) );
$p2->value->show();
$p2->value->SetFormat('%2d');
$p2->value->SetColor('black','black');
$p2->SetFillColor('forestgreen');
$p2->SetWidth(0.5);
$p2->SetLegend( lang_get( 'legend_closed' ) …Run Code Online (Sandbox Code Playgroud)