小编yoz*_*epi的帖子

ASP.Net Identity 2.0:用户是System.Web.Security.RolePrincipal,为什么?

我正在尝试在现有应用程序中实现Asp.Net Identity 2.0(OWIN),并且在角色方面遇到各种各样的麻烦.我从项目模板创建了一个示例项目(据我所知)我已经将所有内容复制到我的应用程序中.我修改了连接信息,因此身份验证表来自我自己的Sql数据库,而不是默认的本地数据库.

一切似乎都很好.这些表在启动时初始化(创建),我可以创建新用户,为该用户分配角色,并以该用户身份登录.但是当我尝试检查用户是否处于特定角色时,我得到一个异常,表明找到本地数据库时出现问题.好吧那是因为我没有使用本地数据库.那么为什么我的应用程序会在(不存在的)本地数据库中寻找角色?

为了排除我的Sql实例中的怪异,我更改了示例应用程序的连接数据,以便它指向我的数据库并运行它.我可以使用我在应用程序中创建的用户登录,甚至可以成功地轮询用户以查询相关角色.我通过直接检查表确认了这一点,并验证了用户,角色和用户角色关联都在那里.

这是我注意到的.当我运行示例应用程序时,用户是一个实例System.Security.Claims.ClaimsPrincipal.但是,当我运行我的应用程序时,用户是一个实例System.Web.Security.RolePrincipal.

那么,我错过了什么?为什么我的应用程序返回RolePrincipal而不是ClaimsPrincipal?我在哪里可以找到线索?

我正在把头发拉出来,我没有多少离开!任何帮助将不胜感激.

asp.net owin asp.net-identity

5
推荐指数
2
解决办法
1821
查看次数

Swashbuckle:多个 [SwaggerResponse] 具有相同的状态代码但不同的描述/模型

我正在编写一个演示购物车 API,我遇到了一种情况,我可以出于多种原因返回 NotFound(未找到购物车项目或未找到购物车本身)。我想为这两种情况返回 Swagger 描述。我试过这个,但它不起作用。

    [SwaggerResponse(HttpStatusCode.NotFound, Type = typeof(CartNotFoundResponse), Description = "Cart not found (code=1)")]
    [SwaggerResponse(HttpStatusCode.NotFound, Type = typeof(ItemNotFoundResponse), Description = "Item not found (code=104)")]
    [SwaggerResponse(HttpStatusCode.NoContent)]
    public async Task<IHttpActionResult> DeleteItemWithSKUAsync(Guid cartId, string sku)
    {
    }
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c# swagger asp.net-web-api2 swashbuckle

5
推荐指数
1
解决办法
3432
查看次数