我有一个ASP.net MVC 5项目,其中包含特定"API"区域中的WebAPI.我在我的web.config中启用了IIS7错误处理,如下所示:
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="400" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="400" path="400.html" responseMode="File" />
<error statusCode="404" path="404.html" responseMode="File" />
<error statusCode="500" path="500.html" responseMode="File" />
</httpErrors>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
当发生404/500等时,这向MVC网站的用户显示友好消息.当从WebAPI返回特定(合法)状态代码时(例如,调用`/ api/token'时为400),我的问题就出现了.在这些情况下,响应的JSON内容被IIS截获,我的友好消息HTML作为响应返回,而不是来自WebAPI的原始JSON.是否可以从IIS错误处理中排除'API'区域?如果无法做到这一点,那么允许ASP.net MVC网站友好消息和WebAPI JSON响应共存的正确解决方案是什么?
我正在尝试从源代码控制(GitHub)自动部署源代码.一切正常,只有一个例外 - web.config没有正确转换.我有以下web.config转换设置:
Web.CloudLIVE.config
Web.CloudTEST.config
我正在使用Release配置在解决方案中构建项目.我想要做的是在Azure门户的App Settings中指定要应用的正确web.config转换('CloudTEST'或'CloudLIVE'),然后在将源代码推送到GitHub时正确转换web.config.是否有可能做到这一点?
我有一个现有的ASP.net MVC和WebAPI组合网站,该网站使用标准UserManager类使用实体框架执行身份验证。现在,我需要“交换”该身份验证,并使用外部的第三方REST Web服务进行身份验证以及存储和更新用户详细信息。
第三方Web服务具有一个简单的login终结点,该终结点使用用户名和密码,如果登录成功,它将返回令牌。
如果可能的话,我希望AspNetRoles在用户登录后继续使用ASP.net Identity 表来管理用户的角色。
实施此方案的最佳方法是什么?我最初考虑编写一个自定义,UserStore但是假设我可以访问密码哈希,而我没有。我只能使用第三方API端点登录并更新密码,我无法直接访问数据库用户表。
asp.net authentication asp.net-mvc entity-framework asp.net-identity