小编Joe*_*aus的帖子

EF无法从#temp表中选择存储过程中的返回模式

假设如下:

CREATE PROCEDURE [MySPROC]
AS 
BEGIN

CREATE TABLE #tempSubset(
    [MyPrimaryKey] [bigint]  NOT NULL,
    [OtherColumn]  [int]     NOT NULL)

INSERT INTO #tempSubset (MyPrimaryKey, OtherColumn) 
    SELECT SomePrimaryKey, SomeColumn 
    FROM   SomeHugeTable
    WHERE  LimitingCondition = true

SELECT MyPrimaryKey, OtherColumn 
FROM   #tempSubset
WHERE  SomeExpensiveCondition = true

END
Run Code Online (Sandbox Code Playgroud)

当我生成函数导入或映射返回类型时,EF不会生成复杂类型或告诉我:

选定的存储过程或函数不返回任何列

怎么克服这个?

其他答案建议使用表变量(由于性能原因不会这样做)伪造返回模式并注释掉实际存储过程,其他建议与视图类似 ...但必须有一种方法来做到这一点,而不必添加不必要的开销或要求我打破存储过程来更新模型?

stored-procedures entity-framework temp-tables

37
推荐指数
3
解决办法
2万
查看次数

Azure功能绑定重定向

是否可以在azure函数文件夹结构中包含web.config或app.config文件以允许程序集绑定重定向?

c# assembly-binding-redirect azure-functions visual-studio-2017 azure-functions-runtime

23
推荐指数
4
解决办法
6660
查看次数

User.IsInRole("假组")导致"主域和受信任域之间的信任关系失败"

我有一个MVC 3应用程序,使用Windows身份验证和声明使用WIF 4.5.

通过AD组中的成员资格(当前)控制对应用程序的访问:

<deny users="?" />
<allow roles="domain\somegroup" />
<deny users="*" />
Run Code Online (Sandbox Code Playgroud)

除AD组外,我们还有需要添加的自定义角色.(此应用程序正在从Forms转换为Windows身份验证)

为了支持这些自定义角色(直到它们在AD中管理),我们将它们添加为ClaimTypes.GroupSid声明给用户,以便现有代码利用[Authorize("ADMIN")]User.IsInRole("ADMIN")继续运行:

Application_PostAuthenticateRequest(object sender, EventArgs e)
{
    var identity = ClaimsPrincipal.Current.Identity as WindowsIdentity;
    var roles = userDAL.GetRoles(identity.Name);
    foreach(var role in roles)
    {
        identity.AddClaim(new Claim(ClaimTypes.GroupSid, role));
    }
}
Run Code Online (Sandbox Code Playgroud)

这一切都按预期工作.

除非当前用户不是某个自定义角色(如ADMIN)的成员,并且该角色在AD中也不存在

我们使用[Authorize("ADMIN")]Controller Action Methods,以及各种User.IsInRole("ADMIN")场景中的依赖实例.在那些发生错误并且应用程序爆炸的情况下.

AD基础架构正处于升级/迁移过程中.我不知道那里的所有细节,但我知道有一些域名,据说他们之间有信任,基础设施人员已经提到这些信任关系正在运行.

所以我想我想知道两件事:

  1. 这似乎不是我们的代码应该处理的东西.那么域名真的可能出现什么问题?我可以找出信任关系失败的"可信"域名吗?

  2. 解决这个问题的最佳方法是什么?我不喜欢编写辅助方法和Authorize()子类只是为了捕获这个异常.

trust active-directory windows-authentication isinrole

10
推荐指数
1
解决办法
4111
查看次数

Azure AD应用程序 - 需要角色分配+为应用程序添加角色分配?

我有一个MVC Web应用程序(WebAPI + Angular)部署到Azure作为Web应用程序(而不是API应用程序),设置为使用设置 - >身份验证/授权 - > AAD - > Express进行保护.这创建了一个与Web App同名的AD应用程序,并且作为普通的Web用户(在目录中,使用OAuth),它按预期工作.

但是我也有外部自动化需要直接调用WebAPI控制器,因此我需要以编程方式获取Bearer令牌以传递这些请求.

当"需要访问APP的用户分配"==否时,这一切都正常.但这还不够,因为目录中的每个人都不应该访问此应用程序.

翻转该开关会导致错误:

应用程序"AppId"未分配给应用程序"AppId"的角色.

正在使用的代码:

    var aadLoginUri = "http://login.microsoftonline.com/{0}";
    var tenantId = "[xxx].onmicrosoft.com";
    var authority = String.Format(CultureInfo.InvariantCulture, aadLoginUri, tenantId);
    var clientId = ConfigurationManager.AppSettings["ClientId"];
    var clientSecret = ConfigurationManager.AppSettings["ClientSecret"];

    var authContext = new AuthenticationContext(authority);
    ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
    AuthenticationResult authResult = authContext.AcquireToken(clientId, clientCredential);
Run Code Online (Sandbox Code Playgroud)

如何为应用程序添加角色分配?
(而不是用户)

我尝试使用"其他应用程序的权限"部分,但无法将应用程序添加到自身.为了查看这是否可以解决另一个应用程序的问题,我继续创建了一个,并且能够添加应用程序并将委托权限设置为"访问[应用程序名称]".但与以前一样,这仅适用于访问应用程序不需要用户分配的情况.然后AcquireToken()抛出相同的异常.

看起来这个问题可以通过将我们的API与Angular应用程序分离来解决,将API作为API应用程序(带有网关)托管,但目前这不是一个选项.此外,本文还说这个新的Auth功能" 替换了大多数应用程序的App Service网关 ",这篇博文在11月宣布该功能说" 我们建议网络和移动应用程序使用此功能而不是App Service网关 ",所以我想知道如果这还没有进入UI并且可能通过应用程序清单(尝试,失败),graph/service-mgmt api,powershell等添加应用程序角色分配.

c# azure azure-web-sites azure-active-directory

6
推荐指数
1
解决办法
3892
查看次数

Azure 服务总线主题订阅 - 筛选 JSON 编码的消息正文属性

如果 BrokeredMessage 的正文是 JSON 文本,是否可以使用该 JSON 中的属性过滤器设置主题订阅?

azure azureservicebus azure-servicebus-topics

6
推荐指数
1
解决办法
939
查看次数

MVC Html.ActionLink 从 URL 中删除空的查询字符串参数

我正在使用Html.ActionLink(string linkText, string actionName, object routeValues)重载将一些参数发送到操作方法..

有时我需要传递一个空参数值,如: ?item1=&item2=value

我指定的匿名类型创建,并通过作为帕拉姆routeValues,但两者nullstring.Empty导致URL省略了空item1PARAM。

new { item1 = null, item2 = "value" } 
new { item1 = string.Empty, item2 = "value" }
new { item1 = "", item2 = "value" }

// all result in:
?item2=value
Run Code Online (Sandbox Code Playgroud)

我可以手动创建 URL,但我想使用辅助方法。

建议?

parameters asp.net-mvc actionlink query-string razor

5
推荐指数
1
解决办法
1850
查看次数

ARM listKeys()函数 - 如何检索OMS/OpsInsight工作区键?

作为模板的一部分,我想要检索OMS/Operational Insights工作区的SharedKeys,而不是必须将其作为参数传递.

这可能吗?我在这里关注文档

Microsoft.OperationalInsights/workspaces/资源提供程序似乎没有任何list*提供程序操作,我找不到任何其他的引用:

Get-AzureRmProviderOperation -OperationSearchString *  | where {$_.Operation -like "*operational*sharedkeys*"} | FT Operation

Microsoft.OperationalInsights/workspaces/sharedKeys/action
Run Code Online (Sandbox Code Playgroud)

我想要的用法:

"variables": { workspaceKey: "[listKeys(parameters('workspaceResourceId'), '2015-05-01-preview').primarySharedKey]" }
Run Code Online (Sandbox Code Playgroud)

在此期间,假设实际上不支持此功能,我在Log Analytics UserVoice站点上添加了对它的请求

json azure azure-resource-manager azure-automation azure-rm-template

5
推荐指数
1
解决办法
1577
查看次数

JointJS - 处理链接删除点击

创建链接后,将鼠标悬停在其上会显示红色(X)以将其删除.

单击此按钮将触发一系列事件(通过订阅"all"事件收集):

  • 电池:pointerdown
  • 链接:pointerdown
  • cell:pointermove(x5,似乎可疑)
  • 电池:pointerup

在浏览文档并花费太长时间深入研究这些事件的参数对象后,我发现没有什么可以用来有效地知道链接是否即将被删除.

当然我错过了一些明显的东西?

我可以比较指针向下和指针之间的图形链接集合,但这非常难看.

javascript jointjs

3
推荐指数
1
解决办法
3635
查看次数

Azure KeyVault到期日期更新

是否可以通过Microsoft.Azure.KeyVault软件包在KeyVault中创建密钥的新版本而无需创建密钥的新版本?我可以在Azure门户中执行此操作,但是需要能够以编程方式执行此操作。

c# azure azure-keyvault

3
推荐指数
1
解决办法
996
查看次数