草庐IT

IPrincipal

全部标签

c# - Base Controller ASP.NET MVC 3 中的这个 Custom Principal 是不是非常低效?

尽管我已经在这里待了一段时间,但这是我关于SO的第一个问题,所以请多多包涵。我正在使用ASP.NETMVC3并且我想创建一个自定义的Principal这样我就可以存储比标准更多的关于当前用户的信息因此不必经常去数据库。这是我追求的相当标准的东西。我们先说电子邮件地址和用户ID。我决定将对象存储在缓存中,因为我知道不建议将其存储在session中。我也不想一直转换User对象,所以我想覆盖Controller中的User对象。所以我可以直接访问User.UserId并得到一些保证。所以我创建了一个这样的自定义主体:publicclassMyPrincipal:IPrincipal{pub

c# - 为什么 Resharper 认为 IPrincipal.Identity 永远不会为空?

在VS2010中运行的Resharper8告诉我可以删除对principal.Identity!=null的检查:我假设这是因为IPrincipal的代码中有一个NotNull属性或潜伏的东西,但是编写您自己的返回空身份的IPrincipal实现非常容易:voidMain(){varfoo=newFooPrincipal();Console.WriteLine(foo.Identity==null?"Yep!":"NotNull");}classFooPrincipal:IPrincipal{publicIIdentityIdentity{get;set;}publicboolIsIn

c# - 用户 (IPrincipal) 在使用 Web Api 2.1 和 Owin 的 ApiController 构造函数上不可用

我将WebApi2.1与Asp.NetIdentity2一起使用。我试图在我的ApiController的构造函数上获取经过身份验证的用户(我正在使用AutoFac注入(inject)我的依赖项),但是当构造函数是打电话。我正在尝试获取用户,以便为任何数据库写入操作生成审计信息。我正在做的一些事情可以帮助诊断:我正在使用仅app.UseOAuthBearerTokens作为Asp.NetIdentity2的身份验证。这意味着我删除了app.UseCookieAuthentication(newCookieAuthenticationOptions())当您使用Asp.NetIdenti

c# - 在 ASP.NET MVC 中使用表单例份验证的自定义 IPrincipal

这应该很简单,但我在谷歌搜索后根本无法弄清楚。这就是我想要的。我有一个我想授权的自定义用户表(目前没有角色)。为此,我必须实现一个自定义的MembershipProvider,我已经完成了。不过,我的问题是,如何将自定义IPrincipal设置为HttpContext.Current.User?那应该在哪里发生?假设我有以下设置:publicclassCustomMembershipProvider:MembershipProvider{privateIUserRepository_repository;publicCustomMembershipProvider(IUserRepos

c# - 在单元测试中为 ApiController 设置用户属性

我的ApiController单元测试使用一些辅助方法来实例化Controller:publicstaticResourcesControllerSetupResourcesController(HttpRequestMessagerequest,IResourceMetadataRepositoryrepo,IUnitOfWorkServiceunitOfWorkService){varconfig=newHttpConfiguration();vardefaultRoute=config.Routes.MapHttpRoute(RouteNames.DefaultApi,"api/

c# - 在单元测试中为 ApiController 设置用户属性

我的ApiController单元测试使用一些辅助方法来实例化Controller:publicstaticResourcesControllerSetupResourcesController(HttpRequestMessagerequest,IResourceMetadataRepositoryrepo,IUnitOfWorkServiceunitOfWorkService){varconfig=newHttpConfiguration();vardefaultRoute=config.Routes.MapHttpRoute(RouteNames.DefaultApi,"api/

c# - 从 OWIN 中的 OAuth Bearer Token 获取 IPrincipal

我已经使用OWIN成功地将OAuth添加到我的WebAPI2项目中。我收到token并可以在HTTPheader中使用它们来访问资源。现在我还想在其他channel上使用这些token进行身份验证,这不是OWIN模板所针对的标准HTTP请求。例如,我正在使用客户端必须发送OAuthBearerToken进行身份验证的WebSockets。在服务器端,我通过WebSocket接收token。但我现在如何才能将此token放入OWIN管道以从中提取IPrincipal和ClientIdentifier?在WebApi2模板中,所有这些都是为我抽象的,因此我无需执行任何操作让它发挥作用。所以

c# - .NET 中 IIdentity 和 IPrincipal 背后的想法是什么

那么,IIdentity和IPrincipal而不是某些IIdentityMergedWithPrincipal存在的目的是什么?什么时候在同一个类中实现两者还不够?此外,为了理解目的,我想知道这个概念的来源:起源于.Net有Identity/Principal作为设计模式的概念,System.Security.Principal在这些接口(interface)中实现它起源于其他地方并支持兼容性因此,System.DirectoryServices中的UserPrincipal是否与IPrincipal类似,但不是无意或有意实现的?附言我在寻找想法背后的推理,而不是利益/争议比较,所以

c# - 在 ASP.NET Core 中模拟 IPrincipal

我有一个ASP.NETMVCCore应用程序,我正在为其编写单元测试。其中一种操作方法使用用户名来实现某些功能:SettingsViewModelsvm=_context.MySettings(User.Identity.Name);这显然在单元测试中失败了。我环顾四周,所有建议都来自.NET4.5到模拟HttpContext。我相信有更好的方法可以做到这一点。我试图注入(inject)IPrincipal,但它抛出了一个错误;我什至尝试过这个(我想是出于绝望):publicIActionResultIndex(IPrincipalprincipal=null){IPrincipalu