问题标签 [iprincipal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
629 浏览

c# - 用户类是否应该实现 IPrincipal 和 IIdentity

我正在为 asp.net web api 2 构建我自己的基于令牌的身份验证,我对这个类有疑问user

目前我的user班级实施IPrincipaland IIdentity,但我不知道最佳实践是什么。你会划分IPrincipal并使实现IIdentity成为其中的IIdentity一员IPrincipal吗?

目前我使用以下类声明

谢谢!

0 投票
1 回答
651 浏览

c# - 从 WCF 服务获取自定义“IIdentity 和 IPrincipal”客户端

我有一个名为MyIdentity的自定义 IIdentity 和一个名为MyPrincipal 的自定义 IIprincipal。这些类用于三个不同的项目:

  • ASP.NET MVC
  • ASP.NET Web 窗体
  • Windows 窗体

这三个项目从 WCF 服务获取信息。

在 WCF 服务中是否有可能在调用时获得自定义 IIdentity ( MyIdentity ) 和自定义 IIPrincipal ( MyPrincipal )?

0 投票
1 回答
137 浏览

asp.net-mvc - StructureMap:如何将 IUser 注入构造函数

我有一个 ASP.NET MVC 5 网站,我想从我自己的类(不知道 http 上下文)访问当前用户信息。我怎样才能将它注入那个类?

显然,我什至不能注入IUserMVC 控制器。它抛出这个错误。

System.MissingMethodException:没有为此对象定义无参数构造函数

我不想手动传递用户信息。

谢谢

0 投票
1 回答
894 浏览

asp.net-web-api2 - 获取 AuthorizeAttribute 以在 web api 2 应用程序中使用具有开始和到期日期的角色?

我需要使用 Identity 2 通过添加其他属性来修改我的 web api 2 项目中的用户角色:DateTime StartDateDateTime EndDate. 这需要能够在有限的时间段内授予用户角色。

我需要做什么才能获得Authorize诸如[Authorize(Role="poweruser")]等属性以了解角色日期?

根据来源(https://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/src/System.Web.Http/AuthorizeAttribute.cs)这个过滤器最终调用IPrincipal.IsInRole

看起来我需要对 in 的实现进行子类化IPrincipalHttpActionContext.ControllerContext.RequestContext.Principal并以某种方式将其注入生命周期中的某个地方,而不是默认实现。

我该怎么做呢?

0 投票
0 回答
731 浏览

asp.net-mvc-5 - ASP.NET MVC5 中的 CustomPrincipal.IsInRole

我在 ASP.NET MVC 5 中工作,我正在使用 ASP.NET Identity。我在这里按照 LukeP 的解决方案来访问我的ApplicationUser自定义属性(例如User.DisplayUsernameUser.DOB)。就像 Luke 建议的那样,我现在有一个自定义的 IPrincipal 实现(基本上与他完全相同的代码)。

然而,这有一个问题,我怀疑这与CustomPrincipal类上的这行代码有关:

我有一个控制器ReviewController,在那里我有这个:

这是行不通的。即使我以管理员身份登录的用户也是如此。所以我尝试通过对IsInRole方法执行此操作来改进代码:

从我现在服务于ReviewController. 但是它仍然是错误的,因为即使不是管理员角色的用户也被允许访问。我也知道为什么会这样,但只是不知道如何解决这个问题。

我怎样才能让它正常工作?

0 投票
1 回答
1798 浏览

asp.net - 什么是 User.Identity.Name 和 User.Identity.IsAuthenticated?

我想知道用户身份名称是什么设置并更改isAuthenticated为true。

为什么是User.Identity.Name一个空字符串,User.Identity.IsAuthenticated false之后SignInManager.PasswordSignInAsync又返回了Success

0 投票
1 回答
295 浏览

asp.net-mvc - 当你想在 Asp.net MVC 中创建自定义主体时,为什么要创建自定义主体接口?

最近我搜索了如何创建自定义主体,我得到了答案,但有一件事我不明白,我在堆栈溢出时找到了这个解决方案

但我不明白的是为什么开发人员创建了 ICustomPrincipal 接口并强制 CustomPrincipal 继承它 为什么 CustomPrincipal 类不直接从 IPrincipal 接口继承

0 投票
0 回答
121 浏览

signalr-hub - 无论如何要在信号器应用程序中设置 IPrincipal

我们在 Web 应用程序中使用了 saml 保护。我会将声明作为标头的一部分传递给信号器。我想阅读名称声明并在 Signalr 中设置 IPrincipal。

  • 我尝试通过实现 Asp.net 模块并设置如下上下文(发件人为 HttpApplication)。Context.User = "My Logic" 该值已设置但无法在信号器 HubCallerContext 中看到。
  • 尝试使用 IUserIdProvider。
  • 尝试使用 OnBeforeConnect。

我已经尝试了我知道的所有可能的方法,但没有结果。

有没有其他方法可以在 Signalr 中设置 IPrincipal ?

0 投票
0 回答
234 浏览

asp.net-mvc - ASP 自定义表单身份验证不起作用,因为 cookie 丢失

我有一个 ASP .Net 4.5 MVC 网站,我按照本教程自定义了表单身份验证。不同之处在于我通过后端 dll 进行身份验证,因此我跳过了教程中的所有数据库内容,并且教程从数据库中获取用户的位置是我从常规方法调用中获取的。我之前已经按照这个教程进行过,并在一个新的 MVC 网站中成功实现了它。这次我在现有的 MVC 网站上实现了它,但我无法让它工作。

当cookie被添加到Response.Cookies它时,它只存在直到代码向用户返回一个视图。之后它不再存在,Response.Cookies这意味着在 Global.asaxApplication_PostAuthenticateRequest方法中,var authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];总是返回null. 我尝试添加其他简单的 cookie,并且这些 cookie 按预期持续存在。

这就是我添加表单身份验证 cookie 的方式

如果我改变这条线

然后“测试”cookie 将按预期运行,我可以在 Global.asax 中获取它Application_PostAuthenticateRequest

0 投票
1 回答
220 浏览

asp.net - 使用 AspNet.Security.OpenIdConnect.Server 实现自定义主体 (ASP.NET vNext)

我正在使用 Visual Studio 2015 Enterprise 和 ASP.NET vNext Beta8 构建一个端点,该端点发出和使用 JWT 令牌,如此处详细描述

我正处于项目的阶段,我希望允许 JWT 不记名身份验证按照上述文章中的讨论进行,但是一旦令牌通过身份验证,我想:

  • 在成功进行 JWT 身份验证后介入并检查其各种声明。
  • 根据我在令牌中找到的内容,水合我自己的主体对象(比如 IContosoPrincipal)的范围实例。
  • 确保 IContosoPrincipal 的支持具体范围仅限于当前请求。
  • 稍后将依赖项注入 IContosoPrincipal 到我的一个令牌保护控制器中。

我确信这将涉及一个范围内的 IContosoPrincipal 对象,我可能会弄清楚这部分,但我不确定如何在令牌成功验证之后但在控制器/动作调用发生之前拦截 JWT 验证。

任何有关如何解决此问题的建议将不胜感激。