小编fli*_*lip的帖子

可以/应该在组织帐户中使用Asp.Net标识吗?

我希望我的用户使用他们的组织帐户(AD,AAD,O365)登录我的网络应用程序,并使用Asp.Net Identity在我的应用程序中本地存储应用程序特定的配置文件或角色信息,我不想要的信息用我的目录或我的租户的目录.

我不确定这种情况是否真实,因为我发现它的信息很少.在MVC 4中它是可行的.我将创建一个Empty MVC4 Web应用程序,使用Identity and Access工具设置联合身份验证,并将名称声明存储在我使用SimpleMembership设置的Users表中(像这样.)

然而,似乎更喜欢Asp.Net Identity而不是SimpleMembership用于新开发.但它看起来要困难得多.查看Visual Studio 2013 RTM中的ASP.NET Web模板,我必须将Individual Accounts模板中的位与组织帐户模板的位组合在一起.我已经看到Asp.Net身份在开箱即用的AspNetUserLogins表中存储了外部登录信息(我可以先用EF6代码更改),但我无法弄清楚我存储的ClaimsIdentity中的哪些信息最好的(tenantId和名称声明?)或代码中的哪一点.组织帐户模板引用Microsoft.Aspnet.Identity但似乎永远不会调用它.

我的情景可行吗?VS2013最终版本是否可以建立一个样本?使用自己的实现存储角色和配置文件信息而不是Asp.Net Identity会更好吗?

azure visual-studio-2013 asp.net-mvc-5 asp.net-identity

9
推荐指数
1
解决办法
1149
查看次数

WindowsIdentity.Impersonate 在 2018 年 4 月 (1803) 更新后抛出“灾难性故障(来自 HRESULT 的异常:0x8000FFFF (E_UNEXPECTED))”

我们的安装程序应用程序使用以下代码来验证服务帐户权限:

try
{
    using (svcIdentity.Impersonate())
    {
        using (SqlConnection conn = new SqlConnection(builder.ConnectionString))  // <<<
        {
            conn.Open();
            ...
Run Code Online (Sandbox Code Playgroud)

为简洁起见省略:

  • 所述svcIdentity的WindowsIdentity通过使用Win32 LSA获得LogonUser在ADVAPI32.DLL功能和LOGON32_LOGON_SERVICE
  • builder 是一个 SqlConnectionStringBuilder,它构建到本地 SQL Server 数据库的连接字符串。

针对 .Net Framework 4.6。

该应用程序运行提升(requestedExecutionLevel level='requireAdministrator'在 app.manifest 中)。

此代码在 Windows 10 版本 1803(2018 年 4 月更新)之前运行完美无缺。从那以后,SqlConnection 构造函数(标记为<<<)抛出异常:

The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception.
Run Code Online (Sandbox Code Playgroud)

内部异常提供了更多洞察力:

Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

   at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl)
   at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence()
   at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType) …
Run Code Online (Sandbox Code Playgroud)

impersonation windows-10 .net-4.6

5
推荐指数
0
解决办法
1041
查看次数