关于另一个问题的this answer的第一部分解释了现有的MVC站点如何能够很快地将其数据公开(例如,向一个请求数据的Winforms应用程序),所有这些都用于几行代码(而不必转换到WCF/Web并添加额外的层--我们的项目非常小而且非常基本):
public JsonResult GetCategoryList()
{
var list = //return list
return Json(list, JsonRequestBehavior.AllowGet);
}因此,我们已经测试了上面的快速和简单的解决方案,它显然是非常有效的,因为在流中,我们获得了MVC应用程序登录的html源代码。
实际上,如果我们添加AllowAnonymous注释,那么do就会得到我们想要的Json流。
但是我们不想允许匿名,我们需要一些保护。已经尝试添加:
Dim nc As New NetworkCredential("username", "password")
request.Credentials = nc在解雇request.GetResponse之前,这是行不通的(这可能是完全无知的,但似乎值得一试)。当我说它不起作用时,我的意思是我们回到在流中获取登录页面的html源代码。
那么,如何允许winforms应用程序在其对数据的请求中包含某种身份验证(这将有效)?正如我所说的,获取数据是有效的(由AllowAnonymous证明)。
发布于 2013-09-26 16:28:59
您应该将web应用程序的身份验证代码(返回登录名的代码)与公开API的身份验证代码分开。
看起来您正在为WebSite部件使用forms身份验证,您应该保持这种状态。但是,在公共API GetCategoryList中,您应该使用ActionFilters实现不同的身份验证策略。
https://stackoverflow.com/questions/19033385
复制相似问题