gpt4 book ai didi

c# - 如何从 Web 服务代码 (C#) 访问内部 ASP.NET 对象?

转载 作者:行者123 更新时间:2023-11-30 21:24:58 25 4
gpt4 key购买 nike

具体来说,我需要根据数据库验证传入的 X.509 安全证书,以允许访问我的 Web 服务。为此,我需要获取客户端发送的证书副本。我想我知道如何做到这一点,如果我能弄清楚如何访问 http Request 对象——一个固有的 ASP.NET 对象。

我发现以下代码描述了如何创建将执行此操作的组件,以及如何在 aspx 页面上的页面加载事件的代码隐藏中加载它。太好了,我从这篇文章中学到了很多东西,但它仍然没有解决我的问题——没有网页,所以没有页面加载事件。

如何:使用 Visual C# .NET 从 .NET 组件访问 ASP.NET 内部对象 http://support.microsoft.com/kb/810928

我使用的是 C# 和 .NET 3.5,但我没有使用 C# 的高级编码功能(lambda、扩展方法等)。我只是还没有花时间学习如何使用它们...

任何提示、指针、示例代码将不胜感激。谢谢,戴夫

最佳答案

如果它是一个 asmx 网络服务(也就是说,“页面”/入口点是 somefile.asmx,它应该像从那里访问请求对象一样简单。

例子:在 Visual Studio 中,创建一个 Web 服务应用程序,并将以下代码粘贴到 service1.asmx.cs 中:(下面的示例返回 Web 请求中所有 header 的名称)

(以下是service1.asmx.cs的完整内容)


using System;
using System.Web;
using System.Web.Services;

namespace WebServiceIntrinsicObjects
{
///
/// Summary description for Service1
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

[WebMethod]
public string HelloWorld()
{
// HERE'S THE LINE: just get the request object from HTTPContext.Current (a static that returns the current HTTP context)
string test = string.Join(",", HttpContext.Current.Request.Headers.AllKeys);
return test;
}
}
}

关于c# - 如何从 Web 服务代码 (C#) 访问内部 ASP.NET 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/890218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com