我有一个MVC应用程序,它还使用Web API控制器提供的服务。
MVC和Web API的托管环境都是IIS。在IIS身份验证模式设置为匿名。
HttpModule用于将用户的身份和角色设置到线程和HttpContext对象中。
所有这些操作都能够正确调用MVC控制器,但是Web API控制器却返回401未授权错误。
两个控制器都使用了适当的授权属性。
下面是用于将用户设置为线程和上下文对象的代码。
MVC和Web API的托管环境都是IIS。在IIS身份验证模式设置为匿名。
HttpModule用于将用户的身份和角色设置到线程和HttpContext对象中。
所有这些操作都能够正确调用MVC控制器,但是Web API控制器却返回401未授权错误。
两个控制器都使用了适当的授权属性。
下面是用于将用户设置为线程和上下文对象的代码。
var principal = new GenericPrincipal(new GenericIdentity(userName), roles);
// contextBase.User = principal;
HttpContext.Current.User = principal;
Thread.CurrentPrincipal = principal;