我有一个带Windows身份验证的WebAPI应用程序。我需要在WebAPI控制器中创建与外部应用程序(MS Dynamics CRM 2016)的连接,但我无法获得连接到WebAPI用户的密码。
是否有可能在WebAPI控制器中获取NetworkCredentials或ClientCredentials对象?我可以获取已连接用户的用户名和域,但不能获取密码。CredentialCache.DefaultNetworkCredentials对象为空。
public class ParametersController : ApiController
{
public IHttpActi
我试图运行一个包含Windows身份验证的IIS托管的OWIN/Katana应用程序,但是无论我做什么,我似乎只得到一个未经身份验证的GenericPrincipal,而不是相关的WindowsPrincipal。
我的Startup.cs
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
WebApiConfig.Register(config);
ap
我正在使用一个MVC4应用程序,并使用WebAPI来获取/发送我所有的数据。在控制器中,我使用HttpClient请求来获取数据,一切都很正常。我面临的问题是,当在项目中启用Windows身份验证时,web API调用将返回401未经授权的错误。
我的控制器中执行调用的代码是:
using (var client = new HttpClient())
{
var invoiceDetailUrl = BASE_URL + Url.HttpRouteUrl(
"DefaultApi",
new { controller = "In
我们的客户有一个为匿名身份验证和Windows身份验证配置的Web API。他们拒绝对此配置进行任何更改。
我们的Windows应用程序正在尝试与此WinForms通信,但它必须对当前登录的用户使用Windows身份验证。WebClient和HttpClient类默认为匿名身份验证,从不尝试发送Windows凭据。
我需要做什么才能允许桌面客户端使用此API进行单点登录?
作为一个沙箱,我构建了这个WebAPI2控制器:
public class AuthenticateController : ApiController
{
public string Get()
{
我希望在ActionFilter中为每个http请求创建一个对象,并将该对象传递给控制器。到目前为止,我已经尝试了如下所示的Request.Properties[]
public class DbReadonlyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
actionContext.Request.Properties["CustomObjectKey"] = new My