【发布时间】:2013-02-12 18:40:55
【问题描述】:
也许我遗漏了什么,或者 .NET 遗漏了什么(最好是前者)
在构建应用程序时(不只是 ASP.NET,这就是我的情况;特别是 ASP.NET 托管的 WCF DS),似乎没有本地方法可以创建 NetworkCredential 对象HttpRequest 或任何类似的请求/标头容器。
我们是否总是必须自己推出,或者System.Net.* 或 System.Web.* 中是否隐藏着一些魔法,签名如下:
NetworkCredential GetAuthorization(HttpRequest request);
我知道这是微不足道的,但我会假设 HTTP 体系结构的标准内容将包含在其他内容如此广泛的内容中 (.NET)
那么,自制字符串操作,还是隐藏在某处的魔术方法?
【问题讨论】:
-
您是否有特别想要或需要
NetworkCredential的原因?为什么User(和等价物)不够用? -
我指的是在大多数形式的 ASP.Net(WebForms、MVC、Web API)中都有一个方便的
User属性,它为您提供了一个功能更全面的对象(通常实现 @ 987654331@ 或IIdentity) 提供许多方便的功能。您想使用NetworkCredential特有的哪些功能? -
(我对上一条评论感到困惑)
NetworkCredential不是绝对要求,但很合适;甚至描述都提到了 Basic、Digest 等。 -
我目前没有使用 WebForms、MVC 或 Web API;而是托管 WCF 数据服务的 ASP.NET。我可以访问
HttpRequest等,并假设有/应该有一种方法可以从给定提供的 HTTP 授权标头的某个地方获取通用凭据对象 (NetworkCredential)。NetworkCredential没有任何具体的必要信息。我只是想知道 .NET 是否为我们提供了一些获取基于基本 HTTP 授权的通用凭证对象的方法,或者我是否坚持自己滚动。
标签: asp.net .net http-headers http-authentication