我正在创建一个新的asp.net MVC 5应用程序。身份验证由第三方使用智能卡处理。一旦用户通过第三方认证,我就会发送用户的唯一ID(在http标头内),我将其与我的数据库匹配,以便查找有关所述用户的相关信息(角色,显示名称等) )。
目前,在每个页面请求中,将发送的用户ID与数据库进行比较,并执行检查以确保用户具有查看所请求页面的适当权限。虽然这很有效,但当所有用户信息都可以存储在cookie中时,肯定会出现一堆不必要的数据库命中。
如果我使用个人用户帐户进行身份验证,我想要做的只是使用Identity和OWIN构建。但由于我不是处理身份验证,而只是处理授权,有没有办法使用Identity和OWIN的所有优秀功能(特别是声明和cookie)?如果不是,那怎么可能呢?
另外,我特别感兴趣的是添加或删除角色。将OWIN与个人用户帐户一起使用,更新cookie就像登录用户一样简单,然后立即返回后台。对于所提出的任何解决方案,也需要该功能。
任何见解都会非常有帮助。谢谢你的阅读!
答案 0 :(得分:0)
您可以通过直接在自定义Cookie中存储值来执行您要求的操作,但出于您的目的,我觉得您可能更感兴趣的是使用sessions来跟踪该信息。这将使您的所有实际数据都保存在服务器端,这样更安全,因为它不容易被cookie修改,并且它允许您更自由地控制状态(对于您的角色示例,您不会这样做)必须"更新" cookie,只需更新服务器端的会话变量,根据需要添加或删除角色。
答案 1 :(得分:0)
想出来。找到了一篇真正有用的精彩文章:
http://www.khalidabuhakmeh.com/asp-net-mvc-5-authentication-breakdown-part-deux