Ric*_*olo 5 c# authentication asp.net-mvc asp.net-web-api asp.net-mvc-5
我有一个MVC 5 Web Api和一个连接它的桌面应用程序.
我有一个控制器,并从应用程序连接到它没有任何问题,但当我将该[Authorize]属性放在控制器中时,httpclient桌面应用程序停止工作,并说没有MediaTypeFormatter可用.
我认为HttpClient工作正常,我尝试使用请求标头定义身份验证:
httpClient.DefaultRequestHeaders.Authorization
并使用这种方式httpclient = new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential("UserName", "password") });.
在使用MVC 4的传递中,它适用于身份验证.
在这种情况下,使用MVC 5,它在使用Anonymous时工作得很好,但是当我进行身份验证时,我得到了这个例外 httpresponse.Content.ReadAsAsync
No MediaTypeFormatter is available to read an object of type 'Dictionary`2' from content with media type 'text/html'.
Run Code Online (Sandbox Code Playgroud)
我应该在哪里看到?
更新
我将httpResponse作为字符串读取,以查看httpclient的内容,并在字符串中输入登录页面的HTML.显然,身份验证失败,MVC + API重定向到登录页面.我现在应该怎么做?为什么身份验证不像以前的MVC 4 Web API那样有效?是因为新的OWIN认证?
这些问题是因为身份验证不起作用。MVC5 使用 Web 表单身份验证,因此我必须创建一种新方法来对 HttpClient 进行身份验证。
该错误是因为,当身份验证失败时,MVC5 将 HttpClient 重定向到登录页面。所以我得到的不是 JSON,而是 HTML。登录页面的 HTML。
| 归档时间: |
|
| 查看次数: |
2476 次 |
| 最近记录: |