关闭一个子目录的ASP.Net WebForms身份验证
我有一个包含WebForms和MVC页面的大型企业应用程序.它具有我不想更改的现有身份验证和授权设置.
WebForms身份验证在web.config中配置: <authentication mode="Forms"> <forms blah... blah... blah /> </authentication> <authorization> <deny users="?" /> </authorization> 到目前为止相当标准我有一个REST服务,这是这个大型应用程序的一部分,我想使用HTTP身份验证代替这一个服务. 因此,当用户尝试从REST服务获取JSON数据时,它将返回HTTP 401状态和WWW验证标头.如果他们以正确形式的HTTP授权响应进行响应,则可以让它们进入. 问题是WebForms会在较低的级别覆盖这一点 – 如果您返回401(未授权),它会覆盖302(重定向到登录页面).这在浏览器中没有问题,但对于REST服务来说却没有用. 我想关闭web.config中的身份验证设置,覆盖“rest”文件夹: <location path="rest"> <system.web> <authentication mode="None" /> <authorization><allow users="?" /></authorization> </system.web> </location> 授权位工作正常,但验证行(< authentication mode =“None”/>)会导致异常:
我在应用程序级别进行配置 – 它位于根web.config – 而且该错误是针对子目录中的web.configs. 如何覆盖身份验证,以便网站的其余所有网站使用WebForms身份验证,而这一个目录不使用? 这类似于另一个问题:401 response code for json requests with ASP.NET MVC,但是我并不是在寻找同样的解决方案 – 我不想仅仅删除WebForms身份验证,并在全球添加新的自定义代码,所涉及的风险和工作都很大.我想改变配置中的一个目录. 更新 我想设置一个单一的Web应用程序,并且我想要所有WebForms页面和MVC视图使用WebForms身份验证.我想要一个目录使用基本的HTTP身份验证. 请注意,我在谈论认证,而不是授权.我想要使??用用户名& HTTP头中的密码,我想要WebForm& MVC页面附带来自.Net的身份验证cookie – 无论哪种情况,我们的DB都会进行授权. 我不想重写WebForms身份验证并滚动我自己的cookie – 这是向应用程序添加HTTP授权REST服务的唯一方法似乎是可笑的. 我不能添加额外的应用程序或虚拟目录 – 它必须是一个应用程序. 解决方法
如果“休息”仅仅是您根目录中的一个文件夹,那么几乎就在这里:
删除认证线,即 <location path="rest"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location> 或者,您可以添加一个web.config到您的休息文件夹,只需这样: <system.web> <authorization> <allow users="*" /> </authorization> </system.web> 检查this. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – SignalR:如何强制认证/终止中心连接服务器端
- asp.net – .NET Application_BeginRequest – 如何获取用户
- ASP.NET MVC 4 JSON绑定到视图模型 – 嵌套对象错误
- asp.net – 在Repeater控件中实现功能链接
- asp.net-mvc – 双值绑定问题
- ASP.net网站配置文件的读写管理
- asp.net-core-mvc – 如何在Asp.Net Core中自定义Developer
- asp.net – 会话超时和页面响应时间
- 强制ASP.Net MVC Bundle以某种顺序呈现javascript文件
- asp.net – FxCop抑制