我们正在开发的当前应用程序包含2个应用程序 . WebApi应用程序和MVC前端应用程序 . 对于WebApi,我通过OWIN添加了对承载令牌授权的支持 . 这些应用程序在同一域中作为单独的网站运行,但具有自己的子域site.xxx.xxx,api.xxx.xxx
对WebAPi进行身份验证,f.e . 使用邮递员,按设计工作,主要和身份对象,包括索赔,正确初始化 .
当我想从Mvc应用程序中登录WEbApi时出现问题 .
有没有办法在通过WebAPI通过/ token url在某种程度上共享OWIN上下文之后获取ClaimsPrincipal和ClaimsIdentity,或者我们应该在MVC应用程序中实现相同的OWIN授权功能来创建单独的autorization “路线”?
1 回答
就在这里 . 要注意的事情
默认情况下,您从Web api返回的令牌将被加密 . 您的Web应用程序需要解密此令牌才能从承载令牌中提取声明 . 为此,您必须在两台服务器上拥有相同的机器密钥(您的webapi web.config和mvc web.config需要具有相同的机器密钥)
您的MVC Web应用程序需要连接承载令牌和应用程序cookie . 您的startup.auth.cs可能包含以下内容:
现在在您的登录方法中