【发布时间】:2017-11-21 04:45:30
【问题描述】:
我有以下设置。
2 个移动应用程序与 asp.net web api 2 项目通信,它们使用 Token Authentication。每个移动客户端都存储令牌客户端,而不是用户名和密码。
然后我将我的门户网站托管在使用标准 cookie 身份验证的 asp.net mvc 5project 上。
现在,在某些情况下,我的移动应用程序需要从 mvc 5web 门户加载网页。例如我们的支付网关页面。但是客户端需要经过身份验证才能加载此页面。
当我们向用户展示一个 web 包装的 web 门户时。它要求他们再次登录。这是非常糟糕的用户体验。
如何使用我的web api Token 对 MVC 站点上的客户端进行身份验证
我在 MVC 站点中想象这样一个函数:
pubic Action LogInWithToken(String token)
{
var user = GetUserFromToken(token);
var isAllowed = AuthenticateUserFromToken(user,token);
if(!isAllowed) return 401;
return CreateCookieForUser(user);
}
【问题讨论】:
-
您可以使用自定义授权属性来检查请求数据,如果令牌存在则验证用户。检查here并在这方面进行搜索。
-
@SivaGopal 是的,我可以做到。但是你如何解密令牌?我仍然需要一种方法来获取
string token并从令牌中获取用户和时间戳。
标签: c# authentication asp.net-mvc-5 asp.net-web-api2 owin