4
我有一个DNN 7的网站,像这样的Web服务端点:如何为DNN WebAPI端点提供凭据?
public class DNNRoleManagementServiceController: DnnApiController
{
//[AllowAnonymous]
[RequireHost]
[HttpGet]
public HttpResponseMessage ManagePortalUserToRole(int PortalID, int UserID, int RoleID, bool RemoveFromRole)
{
//stuff
}
}
这是使用AllowAnonymous发展,它现在是RequireHost因为您的端点安全是件好事。这些端点只能用于我们的系统,因此[RequireHost]
似乎是正确的认证级别。
我有我的C#库调用这个端点:
WebClient webClient = new WebClient();
Uri uri = new Uri(uriString.ToString());
webClient.Credentials = new NetworkCredential("host", "password");
webClient.DownloadStringCompleted += GetStringCompleted;
webClient.DownloadStringAsync(uri);
即使有正确的密码,虽然,我得到的是一个400或401响应。很显然,我以错误的方式提供我的凭证。只有,什么是正确的方式?我在DNN WebAPI上找到的所有文档都是“应用[AllowAnonymous]
属性,以便任何人和他们的狗都可以使用您的Web服务!”如果您提供的服务用于公共消费,这很好。这不是其中之一。
那么提供主机凭证的正确方法是什么,以便通话能够正常工作?我真的不确定。