单个ASP.NET标识用于多个项目

时间:2015-04-23 16:15:45

标签: asp.net-mvc asp.net-identity asp.net-web-api2

有没有办法在两个不同的项目中使用ASP.NET Identity机制?即。我想为MVC项目和WebAPI项目使用单一的身份验证机制。有可能吗?

1 个答案:

答案 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”。)