【发布时间】:2016-03-27 13:57:48
【问题描述】:
我在一个应用程序中工作,其中我有一个单独的 MVC 层和 Web API 层,两者都具有相同的身份验证机制,我在添加项目时选择了个人帐户身份验证选项。 Web api服务层也将被其他一些移动客户端直接访问。
但是当用户通过 MVC 登录时,他应该能够无缝访问 Web Api,但我不想真正将用户名和密码从 MVC 传递到 Web Api 层,我被告知这是一个不好的做法.但我需要对我的用户进行身份验证和授权,所以我想到的唯一选择是在 Web API 级别有一个默认帐户来颁发令牌,这将在 MVC 后进行身份验证并返回一个令牌,即写入客户端中的 cookie。现在来自 UI 的 Ajax 调用可以使用此不记名令牌并完成工作。
我在这里遇到的唯一问题是,因为我使用的是默认帐户,所以我再次需要用户详细信息才能在服务级别进行授权,尽管我在我的 UI 级别进行授权,但用户可以欺骗系统。我在这里迷路了,想出了一个解决方案,例如,当用户登录到 MVC 时,还会发送用户详细信息以及获取 WebAPI 令牌并向用户发出另一个令牌的调用,以便用户使用这两个令牌从 MVC 调用 web api。
我不确定这是否有效,或者它是否是最好的方法。我只是想检查一下,我应该如何从这里出发。对此的任何帮助都会非常棒。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-4 authentication asp.net-web-api