我將IIS配置爲從客戶端獲取證書。我可以輕鬆地獲得客戶端證書事件處理中,例如Page_Load中如何在asp.net web窗體中使用web方法獲取客戶端證書c#?
HttpClientCertificate cert = Request.ClientCertificate;
現在我需要創建Web方法究竟會從證書獲得客戶名稱和該客戶端返回數據。但是,如何在靜態Web方法中獲取客戶端證書,但無法訪問請求?
我將IIS配置爲從客戶端獲取證書。我可以輕鬆地獲得客戶端證書事件處理中,例如Page_Load中如何在asp.net web窗體中使用web方法獲取客戶端證書c#?
HttpClientCertificate cert = Request.ClientCertificate;
現在我需要創建Web方法究竟會從證書獲得客戶名稱和該客戶端返回數據。但是,如何在靜態Web方法中獲取客戶端證書,但無法訪問請求?
在任何方法中,包括靜態方法,都可以使用HttpContext.Current
。如果這不是null,那麼您可以訪問Request
屬性。如果表示非空,則可以訪問ClientCertificate
屬性。
當然,它可能是空的...
它可能爲空?由於「表達總是正確的」,VS 2012強調了ClientCertificate!= null的條件。 – 2013-04-11 10:10:03
VS2012 plus ReSharper,也許? – 2013-04-11 13:17:45
是的。我剛剛查看了HttpRequest類的來源。它不能爲null。 '公共HttpClientCertificate ClientCertificate { [性AspNetHostingPermission(SecurityAction.Demand,級別= AspNetHostingPermissionLevel.Low)] 獲得{ 如果(_clientCertificate == NULL){ _clientCertificate = CreateHttpClientCertificateWithAssert(); } return _clientCertificate; } }' – 2013-04-12 07:05:53
你_may_有權訪問'HttpContext.Current.Request'。 – 2013-02-27 18:13:51
**謝謝! :)**這是我想要的。我從複雜的解決方案看,但一切都很簡單 – Vitalii 2013-02-27 18:31:41