我编写了一个使用第三方程序集的MSBuild任务.
当我在我的项目中使用任务时,MSBuild抱怨它无法加载第三方程序集(毫不奇怪).
我应该在哪里放置第三方程序集,以便MSBuild可以使用它们.我尝试添加项目引用但没有成功.
我有一个用户在单击我的应用程序中的链接时间歇性地接收HTTP 405.据我所知,链接没什么好笑的......
<a id="ctl00_ctlNavigationMenu_viewTransfersLink" href="Navigate.ashx?target=6">- View Transfers</a>
Run Code Online (Sandbox Code Playgroud)
正如我所说,大多数时候链接成功执行.然而,非常偶然的用户已被满足:
405 - 不允许用于访问此页面的HTTP动词.
当我检查IIS日志时,我可以看到以下条目:
2009-02-04 15:12:50 192.168.202.204 2GET /Navigate.ashx target=6 80 - 192.168.202.141 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+InfoPath.2;+.NET+CLR+2.0.50727) 405 0 1 13203
Run Code Online (Sandbox Code Playgroud)
这似乎是报告用户的浏览器使用动词2GET提交了请求.怎么会这样?
通过我们的测试服务器上的日志,我可以看到此问题的一些其他实例:
2008-11-06 13:30:10 192.168.202.204 2GET /Content/Css/origo_advanced_horiz.css - 80 - 192.168.202.190 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322) 405 0 1 109
2008-11-06 13:31:44 192.168.202.204 2GET /Content/Css/origo_advanced_horiz.css - 80 - 192.168.202.190 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322) 405 0 1 62
2008-11-06 13:37:20 192.168.202.204 2GET /Content/Css/datepicker.css - 80 - 192.168.202.190 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322) 405 0 1 109
2008-11-06 14:06:00 192.168.202.204 2GET /Content/Css/origo_advanced_horiz.css - 80 - …Run Code Online (Sandbox Code Playgroud) 我正在使用MVC Preview 5开发一个应用程序.我使用了类型化的视图.
设置debug ="false"后,我发现我收到了表单错误:
"传递到字典中的模型项的类型为'blah.Models.UserAdmin.IndexData',但此字典需要类型为'blah.Models.OrganisationAdmin.IndexData'的模型项".
调试打开时,我没有收到这些错误.
看起来MVC框架是按视图名称缓存视图.如果我有两个使用相同名称的视图的操作(虽然在不同的命名空间中),我发现只有先执行的操作成功,第二个总是导致此错误.
例如,我有一个UserAdminController和一个OrganisationAdminController.
两者都有"索引"动作.
两者都使用名为'Index.aspx'的视图(每个视图都包含在控制器的视图文件夹中; Views/UserAdmin/Index.aspx和Views/OrganisationAdmin.Index.aspx).
两个视图都是类型化的,并使用名为IndexData的模型(blah.Models.UserAdmin.IndexData和blah.Models.OrganisationAdmin.IndexData)
如果我首先访问OrganisationAdmin/Index,我发现任何后续查看UserAdmin/Index的尝试都会导致上面显示的错误消息.
相反,如果我首先访问UserAdmin/Index(重新启动应用程序后),我发现导航到OrganisationAdmin/Index会导致等效错误(反之类型).
我重命名了我的一个观点"UserAdminIndex.aspx",这似乎解决了这个问题.但是,这不应该是一个问题.当然MVC框架支持类似命名的视图?我错过了什么?
任何帮助感激不尽.
沙
请注意,我已经看到了一个问题"在ASP.NET MVC中,我在使用正确的类型化对象呈现用户控件时遇到了错误的类型错误".我遇到了类似的问题,但我没有使用RenderUserControl().
堆栈跟踪:
InvalidOperationException: The model item passed into the dictionary is of type 'blah.Models.RoleAdmin.IndexData' but this dictionary requires a model item of type 'blah.Models.UserAdmin.IndexData'.]
System.Web.Mvc.ViewDataDictionary`1.SetModel(Object value) +231
System.Web.Mvc.ViewDataDictionary..ctor(ViewDataDictionary viewDataDictionary) +99
System.Web.Mvc.ViewPage`1.SetViewData(ViewDataDictionary viewData) +60
System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page) +64
System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer) +85
System.Web.Mvc.ViewResult.ExecuteResult(ControllerContext context) +206
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ActionResult actionResult) +19
System.Web.Mvc.<>c__DisplayClass12.<InvokeActionResultWithFilters>b__f() +18
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +257
System.Web.Mvc.<>c__DisplayClass14.<InvokeActionResultWithFilters>b__11() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter …Run Code Online (Sandbox Code Playgroud) 给出以下HTML:
<div class="component">
<div class="component">
<div class="component">
</div>
</div>
<div class="component">
<div class="somethingelse">
</div>
<div class="component">
</div>
<div class="component">
<input type="button" value="Get Path" onclick="showPath(this)" />
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写函数,showPath以便它返回div与其兄弟类相关的父元素的索引component.所以在上面的示例中,我希望函数返回1.
我已经走到了这一步,但它又回归了2; 我不知道该做什么来忽略div课堂somethingelse
function showPath(element) {
var component = $(element).closest('.component');
alert(component.index());
}
Run Code Online (Sandbox Code Playgroud) 使用Entity Framework Core 2.0,我试图构建一个查询以包含多态子实体的相关数据.
例如,给定以下类型:
public class ParentEntity
{
public int Id { get; set; }
public IList<ChildEntityBase> Children { get; set; }
}
public abstract class ChildEntityBase
{
public int Id { get; set; }
}
public class ChildEntityA : ChildEntityBase
{
}
public class ChildEntityB : ChildEntityBase
{
public IList<GrandchildEntity> Children { get; set; }
}
public class GrandchildEntity
{
public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以及以下配置:
public DbSet<ParentEntity> ParentEntities { get; set; }
protected override …Run Code Online (Sandbox Code Playgroud) 我在一家拥有多个面向公众的网站的公司工作。
其中一些站点是使用第三方产品(Moveable Type、myBB、Trac 等)构建的。我们还有几个基于 Microsoft 堆栈构建的定制站点。
目前,我们没有统一的认证/授权解决方案;每个站点都实现自己的用户存储。
我热衷于在所有站点上实施统一的用户身份验证。我不希望实现单点登录(如果在切换站点时提示用户输入凭据,这不会很糟糕),但我确实需要每个用户都有一个用户名和密码。
在我看来,最可能的解决方案是实现 LDAP 服务器。我们使用的一些第三方产品支持 LDAP,我可以修改我们的定制站点以使用 LDAP。
但是,我从未使用过 LDAP 存储来管理外部用户(我一直在构建自己的用户存储)。
使用 LDAP 的优缺点是什么?我是否忽略了其他选择?
谢谢
沙
authentication forms-authentication ldap active-directory openldap
我正在尝试使用ASP.Net MVC 3编写一个非常简单的CMS系统原型.
系统有一个控制器,有两个动作:show和create.
"显示"操作的格式最多需要5个可选部分,例如domain.com/part1/part2/part3/part4/part5
"显示"操作的格式类似,但应具有领先的"创建"部分,例如domain.com/create/part1/part2/part3/part4/part5
我在global.asax中有以下设置:
routes.MapRoute(
"CreatePageRoute",
"create/{part1}/{part2}/{part3}/{part4}/{part5}",
new
{
controller = "Page",
action = "Create",
part1 = UrlParameter.Optional,
part2 = UrlParameter.Optional,
part3 = UrlParameter.Optional,
part4 = UrlParameter.Optional,
part5 = UrlParameter.Optional
});
routes.MapRoute(
"Default",
"{part1}/{part2}/{part3}/{part4}/{part5}",
new
{
controller = "Page",
action = "Show",
part1 = UrlParameter.Optional,
part2 = UrlParameter.Optional,
part3 = UrlParameter.Optional,
part4 = UrlParameter.Optional,
part5 = UrlParameter.Optional
}
);
Run Code Online (Sandbox Code Playgroud)
如果我的"显示"方法无法找到与提供的路径匹配的页面,则会返回"未找到"页面,其中包含使用提供的路径创建新页面的选项.此链接使用以下内容定义:
@Html.ActionLink("Yes", "Create")
Run Code Online (Sandbox Code Playgroud)
["是"代表问题的答案"你想为这条路径创建一个页面吗?"]
因此测试的 '默认' 的路线时,我看到我的 '显示' 操作成功地呼吁所有以下路径:{空} AA/BA/B/CA/B/C/DA/B/C/d/Ë
这很棒.
但是,由语句"@ Html.ActionLink("是","创建")"生成的结果"创建"链接会产生不一致的结果.它似乎根据输入的长度生成不同的超链接.结果如下:
对于路径"{empty}",链接提供"localhost {:port} /" - 我希望"localhost …
我正在配置.netcore应用程序以使用OIDC身份验证(由IdentityServer提供)。
我在启动中包含了以下代码
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationScheme = "Cookies",
AutomaticAuthenticate = true,
ExpireTimeSpan = TimeSpan.FromMinutes(60)
});
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
AuthenticationScheme = "oidc",
SignInScheme = "Cookies",
Authority = "https://myauthority",
ClientId = "myclient",
CallbackPath = "/",
ResponseType = "id_token token",
Scope = { "openid", "profile", "email" },
});
Run Code Online (Sandbox Code Playgroud)
该应用程序托管在ECS中运行的docker中的AWS上。它在侦听https的应用程序负载平衡器后面运行。
我发现,因为我的应用程序本身并不使用https(因为https被负载均衡器终止),所以OIDC中间件在重定向到OIDC服务器时会生成错误的返回URL-它生成的URL以http://开头。
返回URL由AuthenticationHandler基类中名为BuildRedirectUri的方法生成。它仅使用接收请求的协议-似乎没有任何方法可以覆盖此请求。
protected string BuildRedirectUri(string targetPath)
{
return this.Request.Scheme + "://" + this.Request.Host + this.OriginalPathBase + targetPath;
}
Run Code Online (Sandbox Code Playgroud)
因此,鉴于似乎无法配置中间件来强制HTTP重定向,我还有哪些其他选择?
我是否应该编写一个“高级”中间件组件来侦听重定向请求并修改协议?还是有解决此问题的更好方法?
我刚读完Eric Evans的"领域驱动设计:解决软件核心的复杂性",我正在尝试编写我的第一个以域为中心的应用程序(在C#中).
我们的服务台将使用该应用程序来跟踪用户的计算机分配情况.
我已经勾勒出一个简单的类图来反映域的一部分.看起来像这样......
显示两个类的类图:所有者和计算机.计算机和所有者之间存在名为"分配给"的单向关联.http://www.freeimagehosting.net/uploads/183dd57031.jpg
我还确定了我的第一个功能(将计算机分配给用户)并为其编写了测试...
[Test]
public void AllocateToUser()
{
var user = new Owner("user1");
var computer = new Computer("computer1");
computer.Allocate(user);
Assert.AreEqual(user.Username, computer.AllocatedTo.Username);
}
Run Code Online (Sandbox Code Playgroud)
最后,我编写了代码以使测试通过.
public class Computer
{
public Computer(string name)
{
Name = name;
}
public string Name
{ get; private set; }
public Owner AllocatedTo
{ get; private set; }
public void Allocate(Owner owner)
{
AllocatedTo = owner;
}
}
public class Owner
{
public Owner(string username)
{
Username = username;
}
public string Username
{ …Run Code Online (Sandbox Code Playgroud)