c# - 如果身份角色不是管理员,则从 Web Api 重定向到 MVC Controller

标签 c# asp.net-mvc asp.net-mvc-4 asp.net-web-api

当用户不是 Admin 时,如何从 Web API Controller 重定向到 MVC 主 Controller 。

// GET api/adminleave
        public IEnumerable<ObjectModel> GetPendingLeave()
        {
            if (!User.IsInRole("Admin"))
            {
                var response = Request.CreateResponse(HttpStatusCode.Moved);
                response.Headers.Location = new Uri("example.com");
                return response;
            }
        List<ObjectModel> obj=new List<ObjectModel>();
       return obj;

        }

我按照上面的方法尝试了,但出现了错误。

Error 27 Cannot implicitly convert type 'System.Net.Http.HttpResponseMessage' to 'System.Collections.Generic.IEnumerable'. An explicit conversion exists (are you missing a cast?) F:\WebPortal\WebApplication1\Controllers\Leave\AdminLeaveController.cs 34 24 WebApplication

当我从 webAPI Controller 返回对象列表时,如何从 hom webapi Controller 重定向

最佳答案

您尝试做的事情在 MVC/WebAPI 关系方面没有任何意义。在 MVC 中,整个网站由您的服务器提供服务,使用 WebAPI,您依赖于客户端-API 关系,您在其中创建一个 API,您允许的任何人都可以使用它。

您不能在重定向方面混合使用这些方法。您可以做的是通知您的客户,在这种特定情况下需要重定向(但这仍然不是理想的解决方案)并在客户端执行重定向。

想一想 - 如果您创建了一个可供“每个人”使用的 API,执行此类重定向似乎是正确的做法吗?另一种选择是在您的 MVC Controller 中调用操作并获取结果,但我假设您希望在用户具有“管理员”角色时转到另一个页面。

关于c# - 如果身份角色不是管理员,则从 Web Api 重定向到 MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37784840/

相关文章:

c# - 查找监听本地网络上特定端口的服务器

c# - 如何在Swashbuckle中添加API描述?

javascript - 在angularjs中设置下拉列表的选定值

c# - 在 Razor 应用程序中重定向到另一个网站

authentication - ASP.NET MVC4 覆盖 OnAuthorization 以允许角色白名单

c# - 创建新的设置实例

c# - 如何访问直接操作界面

C# - 使用 webbrowser 控件将字符串传递到网页中的文本框

c# - MVC 强类型 IQueryable<IGrouping<TKey, TElement>> 模型

asp.net-mvc-4 - @Html.ValidationSummary() 在 Ajax.BeginForm 中不起作用