- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经阅读了很多关于在 MVC5 中处理角色管理的身份方式的博客文章,但其中大多数似乎都集成了注册系统等。我想知道我是否可以简单地使用角色。
我有一个现有的 MVC5 项目,我从 Active Directory 中提取我的用户并将它们存储在自定义用户模型类中。是否可以将身份角色管理与这样的项目集成?
我是 ASP.Net MVC 的新手,到目前为止,这让我有些头疼。我是否必须使用扩展 IdentityUser 的模型类?如果是这样,我是否仍然可以使用我的事件目录用户并将 GUID、电子邮件、名称等简单地映射到那个新类,然后使用角色来限制对我的应用程序 View 的访问?
最佳答案
虽然我还没有在生产中使用 ASP.NET Identity(可能在几个月后),但我确实有一个测试项目可以针对内部用户的事件目录进行身份验证。不过,您将不得不推出自己的实现方案才能完成这项工作。
这里有一些简短的示例来展示我如何以不同的方法访问事件目录:
角色
public async Task<IList<string>> GetRolesAsync(User user) {
List<string> roles = new List<string>();
//Active Directory Roles
if (user.Email.Contains("@mycompany")) {
var directory = new CompanyDirectory();
var adGroups = directory.GetGroupsByUser(user.Email);
if (adGroups != null && adGroups.Count > 0) {
roles.AddRange(adGroups);
}
}
//SQL Server Roles
var dbRoles = await _context.Users
.Where(u => u.UserName == user.UserName)
.SelectMany(u => u.Roles)
.Select(r => r.Name)
.ToListAsync();
roles.AddRange(dbRoles);
return roles;
}
授权
public override async Task<User> FindAsync(string userName, string password) {
var identityUser = await base.FindByNameAsync(userName);
if (identityUser != null) {
if (userName.EndsWith("@mycompany.net")) {
var directory = new CompanyDirectory();
var isValidated = directory.ValidateUser(userName, password);
if (isValidated) {
return identityUser;
}
} else {
//SQL Server Auth
}
}
return null;
}
您不需要扩展 IdentityUser
类,因为它实际上是 Entity Framework 实现使用的默认类(即使我使用 SQL Server,我的数据库架构与默认的有很大不同ASP.NET Identity 实现,所以我使用自己的模型)。至少您需要实现的是 IUser
(这实际上是 IdentityUser
实现的)。以下是我的实现方式:
public partial class User : IUser<Guid> {
}
我有另一个同名的部分类,它包含 Entity Framework 使用的所有属性和信息。
关于c# - 将 ASP.NET MVC5 身份角色添加到我现有的 Intranet 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22870748/
我有一个 MVC 应用程序,当我将 Intranet 站点(下图中的 http://192.168.72.196)添加到 Internet 选项中的本地 Intranet 站点时,出现 jQuery
我们经常让我们的客户相信拥有优质内联网和系统的值(value),但在我的组织内,我们似乎并没有“吃自己的狗粮”。 我们的 Intranet 系统真的很乏味——一个没有人真正监督的匆忙组装的共享点安装。
我已将“Artifactory”设置为 Intranet maven 存储库。我有与故障转移相关的问题。 项目 POM central http:/
现在,当然,这可能是由于对 Plone 中的角色/权限模型的误解,因为它与我过去使用过的许多系统略有不同,但这是情况和我得到的地方卡住了。 -- 客户需要一个 Plone 站点 (4.3.3) 仅限于
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭5 年前。 Improve
我的一台 Linux 机器上运行着 Apache2,我经常使用它从家庭网络上的其他机器上浏览该机器上的本地网站。 但我只能通过IP地址访问服务器来实现。 我希望能够通过主机名或其他任意的、难忘的字符串
我正在使用 Plone 5,我创建了一个公共(public)站点,我想将其转换为内部网,我已经安装了 Workflow 插件,但我似乎找不到将内部网策略应用到该站点的方法我已经创建了。有谁知道我做错了
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
我是一名 Mac 用户,网页设计师,试图了解 IE 11 的“以兼容模式显示 Intranet 站点”选项 我有一个客户,一家建筑公司,曾经在他们的 Windows 服务器上托管他们的旧网站(我没有开
我公司想提供室内导航解决方案。我们有硬件并且可以提供位置数据。为了不必编写我们自己的 map 、路线、导航解决方案,我想使用现有的 indor map 解决方案。我最担心的是,将使用我们的软件的场所将
我正在寻找基本的使用分析以应用于托管在公司 SharePoint 服务器上的 html 页面。谷歌分析可能因此无法工作 The Google Analytics JavaScript won't wo
试图弄清楚是否有一种方法可以在 php 页面中嵌入一个窗口,该窗口显示用户所在计算机上的本地目录。 ..能够将文件从该窗口拖放到页面另一半等待的 jquery uploader 中。这个 jquery
由于大多数访客计数服务都是基于测量公共(public)网站,因此我无法使用此类服务。 我的目标是衡量每天有多少独立访问者在特定的 Intranet 站点上冲浪。问题是我的技术可能性非常小,因为我获
我们如何使用组件类型浏览器从 jsp 中检索 Intranet 上文件夹的完整路径 最佳答案 不应该这样做。想想这将是一个多么大的安全漏洞。 关于java - 检索 Intranet 上文件夹的完整路
基本要求: 应该能够索引 MediaWiki、Confluence、Sharepoint、GitHub:Enterprise、Askbot 等内容 应该相当聪明地去除重复结果(Confluence 搜
我将如何设置我的数据库以使其能够从我网络上的其他计算机访问。我想为使用此数据库的家用计算机创建一个本地网站和/或应用程序。 如何设置数据库以通过家庭网络访问? 如何创建允许网络上的任何人连接的本地网站
我开发了一个桌面应用程序,该应用程序是我使用 WPF、WCF、EF 4 和 SQL Seerver 2008 R2 的组合创建的。 现在我必须为安全审计准备我的软件,我需要知道我能做些什么来确保我的应
我们目前有一个使用 ASP.NET 构建的企业内部网,最初是为 IE 设计的。 Intranet 的目的之一是管理文件版本并使用当前文件版本启动程序。这需要 Intranet 在本地机器上启动进程,并
我在使用集成了共享点、SQL 报告服务和一堆使用 ASP.NET MVC 构建的自定义表单的应用程序时遇到了一些问题。 假设我的服务器如下; 苔藓 SSRS 自定义表单 在 MOSS 中,我的门户有时
我是一名优秀的程序员,十分优秀!