小编vab*_*abz的帖子

在ASP.NET MVC Web API服务和MVC客户端体系结构中实现身份验证和基于角色的授权

在为我的Web API(服务) - MVC(客户端)架构项目实现身份验证/授权方案时,我很难确定方法.即使我已经在Web API项目中实现了基于自定义令牌的身份验证,但我发现很难确切地实现授权(在客户端或API本身).


架构概述:

  • 项目解决方案 -
    |
    | __基于ASP.NET Web API的REST服务(在M/C 1上独立托管在IIS上)
    |
    | __基于ASP.NET MVC的客户端(在M/C 2上独立托管在IIS上,使用REST服务)
    |
    | __智能手机客户端应用程序(使用REST服务)

已经实现了身份验证:

  • Web API中基于令牌的身份验证(使用消息处理程序) - 为经过身份验证的用户生成SHA1 encripted令牌,该令牌需要是每个http请求头的一部分以进行身份​​验证.
    (令牌=用户名+用户IP)

  • 受SSL保护的HTTP请求.(再次,使用消息处理程序)

目前的问题:

  1. 授权应在哪一层实施?
  2. 如何在客户端保留用户角色?使用Cookies?或者向Token本身添加角色信息(这可能会增加API解密信息的开销和额外的DB调用以检索与该角色相关的权限)
  3. 如何使用客户端会话保持身份验证令牌?
  4. 因为,我的应用程序是SPA MVC应用程序,将身份验证令牌作为我对API进行的每个AJAX调用的一部分包含的最佳方法是什么?

我希望,考虑到整个身份验证/授权概念,我做错了.因此,我将不胜感激任何替代方法/建议.

asp.net asp.net-mvc asp.net-authorization asp.net-mvc-4 asp.net-web-api

8
推荐指数
1
解决办法
8531
查看次数

托管在Kestrel,helios,WebListener和单独的Console进程中托管Asp.Net vNext应用程序的方式有何不同?

Asp.Net vNext是主机不可知的,应用程序可以在许多平台上托管,符合OWIN标准.根据我从开发人员那里得到的讨论,典型的vNext应用程序可以使用webListener和单独的控制台应用程序进程托管在Helios,Kestrel上.

我提出这个问题的意图是,如果我必须解释所有这些与当前Asp.Net开发人员之间的区别,我将如何解释它?背后的技术细节是什么?

c# owin katana asp.net-core

6
推荐指数
1
解决办法
2485
查看次数