1

我使用 Asp.net WebAPI 开发了一个 Restful webservice,并在 web.config 文件中使用了 windows 身份验证。此 WebService 由内部网络中的内部 windows 应用程序调用。现在的问题是,当我将请求从 IE 浏览器发送到 webService 时,它​​的身份验证和授权工作正常。但是当我通过寡妇应用程序发送请求时,用户没有经过身份验证。场景:当我使用以下配置时,来自网络浏览器的请求已正确验证,但来自 Windows 应用程序的请求未经过验证,即使用户位于具有正确角色的正确 AD 组中。

   <authentication mode="Windows"/>
    <authorization>
       <allow roles = "someGroup1"/>
       <allow roles = "Somegroup2"/>
       <deny users="*" />
    </authorization>

可能是什么问题,请提供任何建议。

4

1 回答 1

3

我发现了问题,Windows 客户端没有将用户信息发送到 Web 主机,因此身份验证和授权失败。由于我使用的是 NTML 身份验证,因此要解决此问题,我必须向 restClient 添加一个身份验证器,如下所示:

var client = new RestClient();
     client.BaseUrl = ServiceUrl;
     client.RemoveHandler("application/json");
     client.RemoveHandler("text/json");
     **client.Authenticator = new NtlmAuthenticator();** 
于 2012-11-29T21:01:19.357 回答