C# Asp.net MVC Web API调用重定向到Accountcontroller登录
我的代码是 RouteConfig:C# Asp.net MVC Web API调用重定向到Accountcontroller登录,c#,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,我的代码是 RouteConfig: public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Dashboard", action =
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
}
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
}
public class ServicesController : ApiController
{
public string Get()
{
return "Hello World";
}
}
public ActionResult Login(string returnUrl)
{
// User Login functionality
ViewBag.ReturnUrl = returnUrl;
return View();
}
WebAPIConfig:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
}
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
}
public class ServicesController : ApiController
{
public string Get()
{
return "Hello World";
}
}
public ActionResult Login(string returnUrl)
{
// User Login functionality
ViewBag.ReturnUrl = returnUrl;
return View();
}
WebAPI控制器:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
}
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
}
public class ServicesController : ApiController
{
public string Get()
{
return "Hello World";
}
}
public ActionResult Login(string returnUrl)
{
// User Login functionality
ViewBag.ReturnUrl = returnUrl;
return View();
}
帐户管理员:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
}
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
}
public class ServicesController : ApiController
{
public string Get()
{
return "Hello World";
}
}
public ActionResult Login(string returnUrl)
{
// User Login functionality
ViewBag.ReturnUrl = returnUrl;
return View();
}
Global.asax.cs
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
我在这里面临的问题是:
1.当我在浏览器中调用Webapi时,它会重定向到
有什么想法吗
谢谢,我想你的问题是你没有对webapiconfig采取行动:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{param}",
defaults: new { param = RouteParameter.Optional }
);
您需要通过以下操作调用控制器:
并将[AllowAnonymous]添加为@qamar saisFilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);-我怀疑其中包含身份验证过滤器。试着把它放在评论中。你是如何调用你的服务的?只需将URL“”放入浏览器?是的。通过简单地将url和它调用servicescontroller中的get函数,但返回登录页而不是json结果“hello world”,您在创建项目时是否选择了身份验证模式?尝试向控制器类添加[AllowAnonymous]属性,如果这样可以避免身份验证重定向,则在这种情况下,[authorize]web api控制器类上的属性将不起作用,而一旦这个问题得到解决,我需要实现web api的基本身份验证