asp.net-mvc-2 – 如何在ASP.NET MVC中实现自定义主体和标识?
|
我想在验证的用户中存储额外的信息,以便我可以轻松访问它(例如User.Identity.Id),而不是仅仅是名称,因为我计划拥有非唯一的名称. 到目前为止,我已经收集到,我应该寻求实现自定义主体和/或身份,但我不知道如何去做.我一直在寻找关于这个问题的文档和教程,但是我在不同的地方找到了相关的东西,我发现它有点混乱. 我已经看到了如何在用户数据属性中的身份验证cookie中添加自定义信息,但是我想从单元测试中获得依赖注入的好处,我可以使用主体和身份. 如果我想实现自己的校长或身份,我需要考虑哪些具体步骤? 在这种情况下,我可以做的最简单(只需添加ID并保留所有默认值). “默认值”将包括默认提供程序(成员资格,角色等). 我已经看到了other question,但是我会欣赏不会有任何漏洞的答案,例如示例中AuthenticateRequest事件中的角色魔术字符串.相反,我需要知道如何将角色从默认的SqlRoleProvider添加到当前用户:何时和在哪里做,如果我需要做任何事情来连接我的新类与其他默认提供程序. 能够去一个示例ASP.NET MVC 2应用程序(例如,从visual studio 2010模板),这样做是很棒的,进行编辑并使其工作. 编辑:我已经编辑了这个问题,以便更好地表明我在这里丢失了很多,所以我无法做出太高级别的答案. 在我看来,在身份认同而不是委托人身上,更有意义的是,尽管我以前曾表示过这样的看法. 解决方法以下问题已回答:ASP.NET MVC – Set custom IIdentity or IPrincipal 但是总结一下… 使用您要存储的其他属性来自定义主体类: Public Class CustomPrincipal
Inherits System.Security.Principal.GenericPrincipal
Private _eyeColor As String
Public ReadOnly Property EyeColor As String
Get
Return _eyeColor
End Get
End Property
Public Sub New(id As System.Security.Principal.IIdentity,roles As String(),eyeColor As String)
MyBase.New(id,roles)
_eyeColor = eyeColor
End Sub
End Class
修改global.asax Global.Application_AuthenticateRequest以使用您的自定义主体: Protected Sub Application_AuthenticateRequest(ByVal sender As Object,ByVal e As System.EventArgs)
...
Dim roles() As String = {"examplerole"}
Context.User = new CustomPrincipal(Context.User.Identity,roles,"green")
End Sub
然后在代码中的其他地方,当你想参考这些属性之一时,这样做: CType(My.User.CurrentPrincipal,CustomPrincipal).EyeColor (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 通过CSS重置HTML元素的高度
- 如何在asp.net网站上使用图片资源?
- 在ASP.net中使用NVP API时,PayPal SetExpressCheckout存在问
- asp.net – 用于集成的IIS 7的自定义HttpModule
- ASP.NET中XML转JSON的方法实例
- asp.net-mvc – 在Hub,SignalR之外获取connectionId
- asp.net-mvc – ASP.NET MVC – 从URL中删除控制器名称
- asp.net-mvc – ASP.NET MVC – RequireJS最佳的多页面应用
- asp.net-mvc – 使用默认控制器的ASP.NET MVC路由
- asp.net-mvc – DataAnnotations StringLength属性MVC – 没
- asp.net – 什么原因导致“无法注销UpdatePanel”
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统
- asp.net-mvc-3 – MVC 3客户端验证,模型绑定十进
- asp.net – Request.Browser.Platform不返回iPad
- asp.net-mvc – MVC 2 vs MVC 3自定义验证属性使
- asp.net – 用于Web应用程序的实体框架过度杀毒?
- asp.net实现文件下载的代码
- asp.net-core – ASP.NET Core 1.1中的multipart
- asp.net-mvc – 如何在不依赖NHibernate的情况下
- 从wsdl文件更新asp.net WebService引用?
