有没有办法在两个不同的项目中使用ASP.NET Identity机制?即。我想为MVC项目和WebAPI项目使用单一的身份验证机制。有可能吗?
答案 0 :(得分:0)
这没什么难的。如果使用样板式MVC 5模板,请确保两者都引用Owin管道并使用相同的身份验证类型/提供程序(通常在Startup.Auth.cs
中)。
如果要部署到多个Web服务器,您需要确保您的web.config都共享相同的machineKey属性。
我喜欢的架构是每个用户角色都有一个Web项目。
例如
<强> myproject.sln 强>
- Auth.csproj (未经授权)
- Profile.csproj (项目默认为“AuthorizeAttribute”。所有角色均可访问。在filters.Add(new AuthorizeAttribute());
中添加FilterConfig.cs
)
- CustomRole.csproj (项目具有自上而下的AuthorizeAttribute派生的自定义“MyCustomRoleAttribute”。)