【发布时间】:2015-04-23 16:15:44
【问题描述】:
有没有办法在两个不同的项目上使用 ASP.NET Identity 机制? IE。我想为 MVC 项目和 WebAPI 项目使用单一身份验证机制。有可能吗?
【问题讨论】:
-
当然是;将 Identity 部分提取到自己的项目中,并在两个项目中使用。
标签: asp.net-mvc asp.net-identity asp.net-web-api2
有没有办法在两个不同的项目上使用 ASP.NET Identity 机制? IE。我想为 MVC 项目和 WebAPI 项目使用单一身份验证机制。有可能吗?
【问题讨论】:
标签: asp.net-mvc asp.net-identity asp.net-web-api2
这没有什么难的。如果使用样板 MVC 5 模板,请确保两者都引用 Owin 管道并使用相同的身份验证类型/提供程序(通常在 Startup.Auth.cs 中)。
如果部署到多个 Web 服务器,您需要确保您的 web.config 都共享相同的 machineKey 属性。
我喜欢的架构是每个用户角色都有一个 Web 项目。
例如
myproject.sln
— Auth.csproj(未经授权)
— Profile.csproj(项目默认具有“AuthorizeAttribute”。所有角色都可以访问。在FilterConfig.cs 中添加filters.Add(new AuthorizeAttribute());)
— CustomRole.csproj(项目具有从 AuthorizeAttribute 派生的自定义“MyCustomRoleAttribute”,以与上述类似的方式添加。)
【讨论】: