我正在使用SSL应用程序,并希望控制哪些文件夹忽略,要求或接受客户端认证。
最终目标是让webApp的子文件夹忽略客户端认证。我不想通过IIS执行此操作,因为它必须在整个Web场中进行复制。
有什么想法吗?
答案 0 :(得分:28)
您可以在web.config(或相应子目录中的web.configs)中使用access部分和locations
的组合来配置它。
例如,要在目录Interface中要求SSL证书,可以将以下块添加到web.config的配置部分:
<location path="Interface">
<system.webServer>
<security>
<access sslFlags="Ssl,SslRequireCert" />
</security>
</system.webServer>
</location>
注意:正如@Jonathan DeMarks在评论中所述,我还需要包含SslNegotiateCert
才能使其正常运行(使用IIS 8.5和Chrome)。所以我的工作配置是:
sslFlags="Ssl,SslRequireCert,SslNegotiateCert"
事实上,我收到一条错误消息,指出我正在指定SslRequireCert
,但我可以使用SslNegotiateCert
。
请注意,如果您想要Ssl,则必须添加它并使用相应的证书标志。
technet文档中的标志值为:
无。此默认设置禁用站点或应用程序的SSL。
SSL。该网站或应用程序需要SSL。
SslNegotiateCert。站点或应用程序接受客户端证书进行身份验证。
SslRequireCert。站点或应用程序需要客户端证书进行身份验证 SSL128。站点或应用程序需要128位SSL证书加密。
<强>无论其强>
默认情况下,access
部分无法覆盖。
为了支持这一点,您必须在C:\ Windows \ System32 \ inetsrv \ config(或安装的相应目录)中修改applicationHost.config并更改以下行:
<section name="access" overrideModeDefault="Deny" />
为:
<section name="access" overrideModeDefault="Allow" />
答案 1 :(得分:0)
我以与IIS(浏览器中的“显示证书”对话框,如果未选择则返回403.7)相同的方式工作的方法是在web.config中按以下顺序使用此序列: Ssl,SslNegotiateCert, SslRequireCert 。
因此,该部分如下所示:
recycler_provider = layoutInflater.findViewById<RecyclerView>(R.id.your_recyclerview_id)