【发布时间】:2016-01-22 05:45:31
【问题描述】:
我们有一个使用 ASP.NET 5 aka vNext 和 MVC 6 开发的 Intranet 站点。
我们希望能够获取用户登录时使用的 Windows 网络 ID,但是有一个现有的数据库来定义角色等。我们将利用并且已经这样做了。我真正想做的就是在使用 ASP.NET Identity 管理用户有权访问的角色时获取 Windows 用户 ID。有什么建议如何做到这一点?
基本上在 Startup.cs 我在配置服务中有类似下面的内容:
services.AddIdentity<WorldUser, IdentityRole>(config =>
{
config.User.RequireUniqueEmail = true;
config.Password.RequiredLength = 8;
}).AddEntityFrameworkStores<WorldContext>();
下一个配置我有:app.UseIdentity();
Windows 身份验证在项目属性级别启用,匿名也是如此。我看不到实际获取 Windows 用户 ID 的方法。
【问题讨论】:
-
我将删除我的答案,因为它不起作用。但我不希望它看起来像是在逃避我的承诺,所以......一旦 48 小时 SO 初始等待结束,并且我被允许开始赏金,我将开始赏金并奖励 100 个代表点给第一个正确回答这个问题的人,无论答案是在赏金之前还是之后。
-
布莱恩,你看过这个stackoverflow.com/a/10584919/4843530。让我知道它是否有帮助,因为我想尝试解决它。似乎我们有非常相似的需求和问题。
-
对不起,我之前错过了。这是一个好主意,但在 IIS Express 下运行代码,代码“var username = Thread.CurrentPrincipal.Identity.Name;”只为用户名返回一个空字符串。可能有一种方法可以进入 IIS Express 配置文件以使其返回 Windows ID。也会试试的。
标签: asp.net asp.net-mvc-5 windows-authentication ntlm asp.net-identity-3