有没有办法在两个不同的项目中使用 ASP.NET 身份机制??我想对 MVC 项目和 WebAPI 项目使用单一身份验证机制。可能吗?
这没什么难的。如果使用样板 MVC 5 模板,请确保两者都引用 Owin 管道并使用相同的身份验证类型/提供程序(通常在 Startup.Auth.cs
中)。
如果部署到多个 Web 服务器,则需要确保 web.config 的所有服务器共享相同的 machineKey 属性。
我赞成的体系结构是每个用户角色都有一个 Web 项目。
例如
我的项目.sln
— Auth.csproj (未经授权)
— Profile.csproj (项目默认为"AuthorizeAttribute"。所有角色都可以访问。在FilterConfig.cs
中添加filters.Add(new AuthorizeAttribute());
)
— CustomRole.csproj (项目具有自定义的"MyCustomRoleAttribute",派生自 AuthorizeAttribute,添加的方式与上述类似。