如何将特定页面限制为证书身份验证?
How to restrict specific pages to Certificate Authentication?
在我的 ASP.NET 网络应用程序中,我创建了 Default.aspx(设置为我的起始页),以及一个名为 SmartCard 的新文件夹,其中包含 WebForm1.aspx。如何配置 Web.Config 以在访问 SmartCard/WebForm1.aspx 时提示用户输入证书,而不是在 Default.aspx 加载时提示用户输入证书?
在 this 问题的已接受答案中:
if your app is hosted in IIS then simply add (in web.config) a section that says client certificate is required for those pages. THe browser will then ask the user for a cert.
从上面的答案中,我在 Whosebug 上查看了更多内容并找到了 this。根据他们接受的答案,我将以下部分放入 Web.Config:
<location path="SmartCard">
<system.webServer>
<security>
<access sslFlags="SslRequireCert" />
</security>
</system.webServer>
然后我在 C:\Windows\System32\inetsrv\config(或适合您的安装目录)中修改了 applicationHost.config 并更改了以下行:
<section name="access" overrideModeDefault="Deny" />
至:
<section name="access" overrideModeDefault="Allow" />
但是,我仍然收到网站加载证书的提示。我首先得到以下屏幕:
单击 "Continue to this website" 后,系统会在 Default.aspx 加载时提示我选择证书。但是,我只想在 SmartCard/WebForm1.aspx 加载时收到选择证书的提示!
非常感谢任何帮助!
这是我在 IIS-7 中的站点设置:
SSL 设置:
站点绑定:
*MyDevCert 是自签名的
更新:
我在 SmartCard 目录中创建了一个新的 Web.Config 文件,内容如下:
<?xml version="1.0"?>
<configuration>
<security>
<access sslFlags="SslRequireCert" />
</security>
<system.web></system.web>
</configuration>
然后我从基础 Web.Config 中删除了 'location' 标签。
基础Web.Config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<identity impersonate="false" />
</system.web>
</configuration>
但是,我仍然看到 "There is a problem with this website's security certificate" 屏幕,并且在我单击 "Continue to this website"
后提示我输入证书
据我所知,sslFlags
.
只能有一个值
见http://www.iis.net/configreference/system.webserver/security/access
并且 https://msdn.microsoft.com/en-us/library/ms689458(v=VS.90).aspx
The sslFlags attribute can be one of the following possible values. The default is None.
在我的 ASP.NET 网络应用程序中,我创建了 Default.aspx(设置为我的起始页),以及一个名为 SmartCard 的新文件夹,其中包含 WebForm1.aspx。如何配置 Web.Config 以在访问 SmartCard/WebForm1.aspx 时提示用户输入证书,而不是在 Default.aspx 加载时提示用户输入证书?
在 this 问题的已接受答案中:
if your app is hosted in IIS then simply add (in web.config) a section that says client certificate is required for those pages. THe browser will then ask the user for a cert.
从上面的答案中,我在 Whosebug 上查看了更多内容并找到了 this。根据他们接受的答案,我将以下部分放入 Web.Config:
<location path="SmartCard">
<system.webServer>
<security>
<access sslFlags="SslRequireCert" />
</security>
</system.webServer>
然后我在 C:\Windows\System32\inetsrv\config(或适合您的安装目录)中修改了 applicationHost.config 并更改了以下行:
<section name="access" overrideModeDefault="Deny" />
至:
<section name="access" overrideModeDefault="Allow" />
但是,我仍然收到网站加载证书的提示。我首先得到以下屏幕:
单击 "Continue to this website" 后,系统会在 Default.aspx 加载时提示我选择证书。但是,我只想在 SmartCard/WebForm1.aspx 加载时收到选择证书的提示!
非常感谢任何帮助!
这是我在 IIS-7 中的站点设置:
SSL 设置:
站点绑定:
*MyDevCert 是自签名的
更新:
我在 SmartCard 目录中创建了一个新的 Web.Config 文件,内容如下:
<?xml version="1.0"?>
<configuration>
<security>
<access sslFlags="SslRequireCert" />
</security>
<system.web></system.web>
</configuration>
然后我从基础 Web.Config 中删除了 'location' 标签。
基础Web.Config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<identity impersonate="false" />
</system.web>
</configuration>
但是,我仍然看到 "There is a problem with this website's security certificate" 屏幕,并且在我单击 "Continue to this website"
后提示我输入证书据我所知,sslFlags
.
见http://www.iis.net/configreference/system.webserver/security/access 并且 https://msdn.microsoft.com/en-us/library/ms689458(v=VS.90).aspx
The sslFlags attribute can be one of the following possible values. The default is None.